Skip to content

A sleek Spring Boot web app that helps students organize assignments, track deadlines, and boost academic performance. Features modern UI, automated reminders, and real-time progress tracking - all in one powerful productivity hub!

License

Notifications You must be signed in to change notification settings

nishant-cipher/edutask-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“š EduTask Manager - Student Productivity System

Java Spring Boot PostgreSQL Thymeleaf Bootstrap

A comprehensive Student Productivity Management System built with Spring Boot

Features โ€ข Architecture โ€ข Installation โ€ข Flow Diagrams โ€ข API

๐Ÿ“‹ Table of Contents

โœจ Overview

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.

๐Ÿ— System Architecture

High-Level Architecture Diagram

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Client        โ”‚    โ”‚   Spring Boot    โ”‚    โ”‚   Database      โ”‚
โ”‚   (Browser)     โ”‚โ—„โ”€โ”€โ–บโ”‚   Application    โ”‚โ—„โ”€โ”€โ–บโ”‚   PostgreSQL    โ”‚
โ”‚                 โ”‚    โ”‚                  โ”‚    โ”‚                 โ”‚
โ”‚ - HTML/CSS/JS   โ”‚    โ”‚ - Controllers    โ”‚    โ”‚ - Students      โ”‚
โ”‚ - Bootstrap     โ”‚    โ”‚ - Services       โ”‚    โ”‚ - Tasks         โ”‚
โ”‚ - Thymeleaf     โ”‚    โ”‚ - Repositories   โ”‚    โ”‚ - Relations     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚ - Entities       โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ - Scheduling     โ”‚
                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Component Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      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    โ”‚             โ”‚                        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Š Flow Diagrams

1. Application Startup Flow

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]
Loading

2. User Request Flow

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
Loading

3. Task Creation Flow

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]
Loading

4. Student Management Flow

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 --> [*]
Loading

5. Reminder System Flow

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]
Loading

6. Database Relationship Flow

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
    }
Loading

7. Complete User Journey Flow

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
Loading

๐Ÿš€ Features

๐ŸŽฏ Core Management

  • ๐Ÿ“ 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

๐ŸŽจ User Experience

  • ๐Ÿ’ซ 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 Stack

Backend

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

Frontend

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

Database

Technology Version Purpose
PostgreSQL 17.6+ Primary database
Hibernate 6.6.33 ORM implementation
JPA 3.1.0 Data persistence specification

๐Ÿ“‹ Prerequisites

  • Java Development Kit (JDK) 17 or higher
  • Apache Maven 3.6 or higher
  • PostgreSQL 17.6 or higher
  • Git for version control

๐Ÿš€ Quick Start

Step 1: Clone & Setup

git clone https://github.com/your-username/edutask-manager.git
cd edutask-manager

# Database setup
psql -U postgres -c "CREATE DATABASE edutask_db;"

Step 2: Configure

# application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/edutask_db
spring.datasource.username=postgres
spring.datasource.password=your_password

Step 3: Run

mvn clean spring-boot:run

Step 4: Access

http://localhost:8080

๐Ÿ“ Project Structure

src/main/java/com/edutask/
โ”œโ”€โ”€ config/           # Configurations
โ”œโ”€โ”€ controller/       # Web controllers  
โ”œโ”€โ”€ model/           # JPA entities
โ”œโ”€โ”€ repository/      # Data access
โ””โ”€โ”€ service/         # Business logic

๐ŸŽฎ Usage Guide

Student Management Flow

  1. Add Student โ†’ Fill form โ†’ Validate โ†’ Save to DB
  2. View Students โ†’ List all โ†’ Click details โ†’ Show profile + tasks
  3. Edit Student โ†’ Load form โ†’ Update data โ†’ Save changes
  4. Delete Student โ†’ Confirm โ†’ Remove + cascade delete tasks

Task Management Flow

  1. Create Task โ†’ Select student โ†’ Set details โ†’ Validate โ†’ Save
  2. Track Progress โ†’ Update status โ†’ Automatic reminders
  3. Complete Task โ†’ Mark done โ†’ Update statistics

๐Ÿ”ง API Endpoints

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

๐Ÿ› Troubleshooting

Common Issues

  1. DB Connection: Check PostgreSQL service and credentials
  2. Port Conflict: Change server.port in properties
  3. Template Errors: Clear cache, check Thymeleaf syntax
  4. Bean Issues: Verify dependencies and configurations

๐Ÿค Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

โญ If you find this project helpful, please give it a star!

Happy Coding! ๐Ÿš€

Built with โค๏ธ using Spring Boot and modern web technologies

About

A sleek Spring Boot web app that helps students organize assignments, track deadlines, and boost academic performance. Features modern UI, automated reminders, and real-time progress tracking - all in one powerful productivity hub!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published