OBS (Öğrenci Bilgi Sistemi) is a modern, full-stack Student Information System designed to manage all aspects of university operations — from student enrollment and grade tracking to academician management and administrative oversight.
The system supports four distinct user roles, each with a dedicated portal and tailored feature set.
- System-wide dashboard with real-time statistics (students, staff, courses)
- Full CRUD for users: Students, Academicians, Administrative Staff
- Department-based course management with instructor assignment
- Role-colored personnel directory (Students: Green, Academicians: Purple, Staff: Orange)
- Live System Activity Feed — audit log of all critical actions
- Global announcement broadcasting
- Personal dashboard with assigned courses and student lists
- Grade entry and approval workflow
- Attendance tracking per course
- Office hours management
- Advisee performance monitoring
- Exam scheduling
- Dashboard with enrolled courses, GPA, and upcoming exams
- Course registration system with prerequisite validation
- Weekly schedule view
- Full transcript with semester-by-semester GPA
- Grade simulation tool
- To-Do list and notification center
- Department-scoped dashboard and reporting
- Student and course management within assigned unit
- Real-time messaging system between all roles
- JWT-based authentication & role-based access control
- Glassmorphism dark-mode UI
| Layer | Technology |
|---|---|
| Backend | Java 17, Spring Boot 3, Spring Security, JPA/Hibernate |
| Database | PostgreSQL 16 |
| Auth | JWT (JSON Web Token) |
| Frontend | React 18, Vite, Lucide React |
| Styling | CSS (Glassmorphism Dark Theme) |
| DevOps | Docker, Docker Compose |
OBS/
├── backend/ # Spring Boot application
│ └── src/main/java/com/obs/backend/
│ ├── controller/ # REST API endpoints
│ ├── service/ # Business logic layer
│ ├── model/ # JPA entities
│ ├── repository/ # Spring Data repositories
│ ├── dto/ # Data Transfer Objects
│ ├── security/ # JWT & Spring Security config
│ └── exception/ # Global error handling
├── frontend/ # React application
│ └── src/
│ ├── pages/ # Role-based page components
│ ├── services/ # Axios API service layer
│ ├── components/ # Shared UI components
│ ├── context/ # Auth context & state
│ └── layouts/ # Portal layout wrappers
├── docker-compose.yml
└── seed.sql # Initial database seed data
- Java 17+
- Node.js 18+
- PostgreSQL 16 (or Docker)
git clone https://github.com/devberatzengin/OBS-Demo.git
cd OBS-Demodocker-compose up -dcd backend
./gradlew bootRunAPI will be available at
http://localhost:8080
cd frontend
npm install
npm run devApp will be available at
http://localhost:5173
| Role | Username | Password |
|---|---|---|
| Root Admin | sysadmin |
admin123 |
| Academician | prof.smith |
123456 |
| Student | student01 |
123456 |
⚠️ Change these credentials before any production deployment.
Login Page · Admin Dashboard · Student Portal · Academician Grade Entry
(Add screenshots here)
Client (React + Vite)
│
│ HTTP / REST
▼
Spring Boot API (Port 8080)
│ Spring Security + JWT Filter
│
├── Controllers (AuthController, AdminUserController, StudentController...)
├── Services (AdminServiceImpl, StudentServiceImpl, TranscriptServiceImpl...)
├── Repositories (JPA / Spring Data)
│
▼
PostgreSQL Database
This project is intended for academic and portfolio purposes.