A comprehensive Student Productivity Management System built with Spring Boot
Features โข Architecture โข Installation โข Flow Diagrams โข API
- โจ Overview
- ๐ System Architecture
- ๐ Flow Diagrams
- ๐ Features
- ๐ Technology Stack
- ๐ Prerequisites
- ๐ Quick Start
- ๐ Project Structure
- ๐ฎ Usage Guide
- ๐ง API Endpoints
- ๐ Troubleshooting
- ๐ค Contributing
EduTask Manager is a powerful web application designed to help students and educators manage academic tasks, track deadlines, and boost productivity. With its intuitive interface and robust features, it streamlines the entire academic workflow.
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Client โ โ Spring Boot โ โ Database โ
โ (Browser) โโโโโบโ Application โโโโโบโ PostgreSQL โ
โ โ โ โ โ โ
โ - HTML/CSS/JS โ โ - Controllers โ โ - Students โ
โ - Bootstrap โ โ - Services โ โ - Tasks โ
โ - Thymeleaf โ โ - Repositories โ โ - Relations โ
โโโโโโโโโโโโโโโโโโโ โ - Entities โ โโโโโโโโโโโโโโโโโโโ
โ - Scheduling โ
โโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLIENT LAYER โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Thymeleaf Templates + Bootstrap + Custom CSS/JS โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Home โ โ Students โ โ Tasks โ โ
โ โ Page โ โ Pages โ โ Pages โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CONTROLLER LAYER โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Home โ โ Student โ โ Task โ โ
โ โ Controller โ โ Controller โ โ Controller โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SERVICE LAYER โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Student โ โ Task โ โ Reminder โ โ
โ โ Service โ โ Service โ โ Service โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REPOSITORY LAYER โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ Spring Data JPA โ
โ โ Student โ โ Task โ + Hibernate ORM โ
โ โ Repository โ โ Repository โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DATABASE LAYER โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ PostgreSQL Database with Tables: โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ students โ โโโโโโ โ tasks โ โ
โ โ โ 1:M โ โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
graph TD
A[Spring Boot Application Start] --> B[Load Configuration]
B --> C[Initialize Database Connection]
C --> D[Create JPA Entities]
D --> E[Run DataInitializer]
E --> F[Create Demo Data]
F --> G[Start Embedded Tomcat]
G --> H[Register Thymeleaf Templates]
H --> I[Application Ready on Port 8080]
I --> J[Start Scheduled Tasks]
sequenceDiagram
participant U as User
participant B as Browser
participant C as Controller
participant S as Service
participant R as Repository
participant DB as Database
U->>B: Access URL
B->>C: HTTP Request
C->>S: Process Request
S->>R: Data Operation
R->>DB: SQL Query
DB->>R: Return Data
R->>S: Entity Objects
S->>C: Processed Data
C->>B: Thymeleaf Template + Data
B->>U: Rendered HTML Page
flowchart TD
A[User Clicks 'Add Task'] --> B[Load Create Task Form]
B --> C[Display Form with Student List]
C --> D[User Fills Form Data]
D --> E{Form Validation}
E -->|Valid| F[Create Task Object]
E -->|Invalid| G[Show Error Messages]
G --> C
F --> H[Set Task Properties]
H --> I[Assign Student to Task]
I --> J[Save Task to Database]
J --> K[Show Success Message]
K --> L[Redirect to Tasks List]
stateDiagram-v2
[*] --> StudentList
StudentList --> AddStudent: Click Add
StudentList --> ViewStudent: Click View
StudentList --> EditStudent: Click Edit
StudentList --> DeleteStudent: Click Delete
AddStudent --> SaveStudent: Submit Form
ViewStudent --> StudentList: Back to List
EditStudent --> UpdateStudent: Save Changes
DeleteStudent --> ConfirmDelete: User Confirmation
SaveStudent --> StudentList: Redirect
UpdateStudent --> StudentList: Redirect
ConfirmDelete --> StudentList: Refresh List
StudentList --> [*]
graph LR
A[Scheduled Task<br/>Every Hour] --> B[Query Tasks Due Soon]
B --> C{Check Conditions}
C -->|Due in 24hrs| D[Send Reminder]
C -->|Not Due| E[Skip]
C -->|Completed| E
C -->|Reminder Sent| E
D --> F[Mark Reminder Sent]
F --> G[Log Activity]
E --> H[Wait Next Cycle]
erDiagram
STUDENT ||--o{ TASK : creates
STUDENT {
bigint id PK
varchar name
varchar email UK
varchar course
datetime created_at
}
TASK {
bigint id PK
varchar title
text description
enum priority
enum status
datetime due_date
datetime created_at
boolean reminder_sent
bigint student_id FK
}
journey
title User Journey: Complete Task Management
section Homepage
Visit Homepage: 5: User
View Statistics: 4: User
See Recent Tasks: 3: User
section Student Management
Add New Student: 5: Admin
View Student Details: 4: User
Edit Student Info: 3: Admin
section Task Management
Create New Task: 5: User
Assign to Student: 4: User
Set Priority & Due Date: 5: User
Track Progress: 4: User
Mark Complete: 5: User
section Dashboard
View Analytics: 4: User
Check Upcoming Deadlines: 5: User
Monitor Productivity: 4: User
- ๐ Student Management - Complete CRUD operations for student profiles
- โ Task Management - Create, assign, and track academic tasks
- ๐ฏ Priority System - Four priority levels (LOW, MEDIUM, HIGH, URGENT)
- ๐ Status Tracking - Real-time progress monitoring (PENDING, IN_PROGRESS, COMPLETED, CANCELLED)
- โฐ Automated Reminders - Smart deadline notifications
- ๐ Analytics Dashboard - Visual insights and productivity metrics
- ๐ซ Modern UI - Beautiful gradient design with glass morphism effects
- ๐ฑ Fully Responsive - Optimized for desktop, tablet, and mobile
- ๐ญ Smooth Animations - Engaging hover effects and transitions
- โก Real-time Updates - Instant feedback and flash messages
- ๐ Intuitive Navigation - Clean, organized interface
| Technology | Version | Purpose |
|---|---|---|
| Java | 17+ | Core programming language |
| Spring Boot | 3.2.0 | Application framework |
| Spring Data JPA | 3.2.0 | Database operations |
| Spring MVC | 6.2.12 | Web layer |
| Spring Scheduling | 6.2.12 | Automated reminders |
| Technology | Version | Purpose |
|---|---|---|
| Thymeleaf | 3.1.3 | Server-side templating |
| Bootstrap | 5.3.0 | CSS framework and components |
| Bootstrap Icons | 1.10.0 | Icon library |
| Custom CSS | - | Enhanced styling and animations |
| Technology | Version | Purpose |
|---|---|---|
| PostgreSQL | 17.6+ | Primary database |
| Hibernate | 6.6.33 | ORM implementation |
| JPA | 3.1.0 | Data persistence specification |
- Java Development Kit (JDK) 17 or higher
- Apache Maven 3.6 or higher
- PostgreSQL 17.6 or higher
- Git for version control
git clone https://github.com/your-username/edutask-manager.git
cd edutask-manager
# Database setup
psql -U postgres -c "CREATE DATABASE edutask_db;"# application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/edutask_db
spring.datasource.username=postgres
spring.datasource.password=your_passwordmvn clean spring-boot:runhttp://localhost:8080
src/main/java/com/edutask/
โโโ config/ # Configurations
โโโ controller/ # Web controllers
โโโ model/ # JPA entities
โโโ repository/ # Data access
โโโ service/ # Business logic
- Add Student โ Fill form โ Validate โ Save to DB
- View Students โ List all โ Click details โ Show profile + tasks
- Edit Student โ Load form โ Update data โ Save changes
- Delete Student โ Confirm โ Remove + cascade delete tasks
- Create Task โ Select student โ Set details โ Validate โ Save
- Track Progress โ Update status โ Automatic reminders
- Complete Task โ Mark done โ Update statistics
| Method | Endpoint | Description | Flow |
|---|---|---|---|
| GET | /students |
List students | Controller โ Service โ Repository โ DB |
| POST | /students/create |
Create student | Form โ Validation โ Service โ DB |
| GET | /tasks |
List tasks | Query โ Process โ Render template |
| POST | /tasks/create |
Create task | Form โ Assign student โ Save |
- DB Connection: Check PostgreSQL service and credentials
- Port Conflict: Change
server.portin properties - Template Errors: Clear cache, check Thymeleaf syntax
- Bean Issues: Verify dependencies and configurations
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request