A secure desktop application for managing academic assignments with deadline tracking, progress monitoring, MySQL integration, and automated email notifications.
Assignment Tracker is a Java Swing-based desktop application developed to help students efficiently organize and manage academic assignments.
The application provides secure user authentication, assignment management, deadline tracking, progress monitoring, and automated email notifications through a clean and intuitive graphical interface.
The project demonstrates the practical implementation of Object-Oriented Programming (OOP) concepts including encapsulation, inheritance, polymorphism, abstraction, MVC architecture, and the Singleton design pattern while integrating Java Swing, MySQL, JDBC, BCrypt, and JavaMail. :contentReference[oaicite:0]{index=0}
| Feature | Description |
|---|---|
| 🔐 Secure Authentication | User registration and login with BCrypt password hashing and secure credential validation. |
| 📝 Assignment Management | Create, update, delete, and organize academic assignments with an intuitive interface. |
| 📅 Deadline Tracking | Monitor assignment deadlines and receive timely reminders to avoid missing submissions. |
| 📊 Progress Monitoring | Track assignment completion using three status levels: Not Started, In Progress, and Completed. |
| 📧 Email Notifications | Automatically sends welcome emails, deadline reminders, and assignment completion notifications. |
| 💾 Database Integration | Uses MySQL with JDBC for persistent storage of users and assignments. |
| 🎨 Interactive Dashboard | Displays assignment statistics, pending work, completed tasks, and upcoming deadlines in a user-friendly dashboard. |
| 🏗️ Layered Architecture | Organized using Database, Model, Service, and UI layers for better maintainability and scalability. |
The application follows a layered architecture consisting of a Java Swing presentation layer, service layer, data access layer, and a MySQL database connected through JDBC. This separation of concerns improves maintainability, modularity, and scalability while demonstrating core object-oriented design principles. :contentReference[oaicite:1]{index=1}
| Category | Technologies |
|---|---|
| Programming Language | Java |
| GUI Framework | Java Swing |
| Database | MySQL |
| Database Connectivity | JDBC |
| Build Tool | Apache Maven |
| Authentication | BCrypt |
| Email Service | JavaMail API |
| Architecture | Layered Architecture (UI → Service → Database) |
| Design Patterns | Singleton, MVC |
Assignment-Tracker
│
├── src/
│ └── main/
│ ├── java/
│ │ └── com.assignmenttracker/
│ │ ├── database/
│ │ ├── model/
│ │ ├── service/
│ │ └── ui/
│ │
│ └── resources/
│ └── database.sql
│
├── pom.xml
├── .gitignore
└── README.md
- Java 17 or later
- Apache Maven
- MySQL Server
- IntelliJ IDEA (Recommended)
git clone https://github.com/Samruddhi-Shinde-2024/assignment-tracker.git
cd assignment-trackermvn clean install- Open MySQL Workbench (or any MySQL client).
- Execute the SQL script located at:
src/main/resources/database.sql
- Update the database credentials inside:
src/main/java/com/assignmenttracker/database/DatabaseConnection.java
Replace the placeholder values with your local MySQL configuration before running the application.
This project demonstrates the practical implementation of core Object-Oriented Programming (OOP) principles:
| Concept | Implementation |
|---|---|
| 🔒 Encapsulation | Private fields with getters and setters to protect object state. |
| 🧬 Inheritance | Swing UI components extend standard Java Swing classes to promote code reuse. |
| 🎭 Polymorphism | Method overloading and event-driven implementations provide flexible behavior. |
| 🎯 Abstraction | Database operations and business logic are separated from the presentation layer. |
| 🏛️ Design Patterns | Singleton pattern for database connection management and MVC architecture for separation of concerns. |
Assignment-Tracker │ ├── assets/ │ login.png │ dashboard.png │ assignment-list.png │ add-assignment.png │ email.png │ └── README.md
- 📅 Calendar-based assignment scheduling
- 📊 Advanced analytics and productivity reports
- 📎 File attachment support
- ☁️ Cloud database integration
- 📱 Mobile application support
- 🔔 Push notifications
- 🤖 AI-powered task prioritization
- 🌐 Multi-user collaboration
Samruddhi Shinde
Information Technology Student @ Vishwakarma Institute of Technology, Pune
Full Stack Developer • AI/ML Enthusiast
⭐ If you found this project useful, consider giving the repository a star!