A comprehensive Spring Boot web application designed to help college students organize their academic life, track assignments, manage courses, and monitor their academic performance.
- Real-time Dashboard with academic overview and statistics
- Assignment Progress Chart using Chart.js for visual progress tracking
- Quick Stats Panel showing weekly assignments, courses, and grades
- Recent Assignments with status indicators and due date tracking
- Overdue Assignments with priority alerts
- Upcoming Assignments for better planning
- CRUD Operations for courses with full validation
- Color-coded Courses for easy visual identification
- Course Details including instructor, credits, semester, and academic year
- Search Functionality to quickly find specific courses
- Responsive Course Cards with hover effects
- Complete Assignment Tracking with due dates, priorities, and status
- Priority Levels (High, Medium, Low) for better organization
- Status Tracking (Pending, In Progress, Completed)
- Assignment Categories and detailed descriptions
- Due Date Notifications and overdue tracking
- Grade Recording with points earned and possible points
- Letter Grade Calculation with automatic GPA computation
- Category-based Grading for different assignment types
- Grade Analytics with average calculations
- Performance Tracking across courses and semesters
- Monthly Calendar View showing assignments by due date
- Upcoming Deadlines with visual indicators
- Assignment Scheduling with time management features
- Spring Boot 3.5.6 - Modern Java framework
- Java 21 - Latest LTS version
- Spring Data JPA - Database abstraction layer
- Hibernate - ORM for database operations
- Spring Security - Authentication and authorization
- Maven - Dependency management and build tool
- Thymeleaf - Server-side templating engine
- Tailwind CSS - Utility-first CSS framework
- Chart.js - Interactive charts and data visualization
- Font Awesome - Icon library
- Responsive Design - Mobile-first approach
- H2 Database - In-memory database for development
- MySQL Support - Production-ready database configuration
- JPA/Hibernate - Database persistence layer
- Spring Boot DevTools - Hot reloading for development
- Spring Boot Actuator - Application monitoring
- Spring Boot Mail - Email notification support
- Spring Data REST - RESTful API endpoints
- Lombok - Boilerplate code reduction
- Java 21 or higher
- Maven 3.6 or higher
- Git
-
Clone the repository
git clone https://github.com/yourusername/studybuddy.git cd studybuddy -
Build the project
mvn clean install
-
Run the application
mvn spring-boot:run
-
Access the application
- Open your browser and navigate to
http://localhost:8080 - Default login credentials:
- Username:
admin - Password:
admin
- Username:
- Open your browser and navigate to
- H2 Console:
http://localhost:8080/h2-console - JDBC URL:
jdbc:h2:mem:studybuddy - Username:
sa - Password: (leave empty)
Comprehensive dashboard with assignment progress, statistics, and quick actions
Color-coded course management with search and filtering
Detailed assignment tracking with priority and status management
studybuddy/
βββ src/main/java/com/studybuddy/studybuddy/
β βββ controller/ # REST and web controllers
β βββ service/ # Business logic layer
β βββ repository/ # Data access layer
β βββ entity/ # JPA entities
β βββ dto/ # Data transfer objects
β βββ config/ # Configuration classes
β βββ StudyBuddyApplication.java
βββ src/main/resources/
β βββ templates/ # Thymeleaf templates
β βββ static/ # Static assets (CSS, JS, images)
β βββ application.properties
βββ pom.xml # Maven configuration
The application supports both H2 (development) and MySQL (production):
# H2 Database (Development)
spring.datasource.url=jdbc:h2:mem:studybuddy
spring.datasource.driverClassName=org.h2.Driver
spring.h2.console.enabled=true
# MySQL Database (Production)
# spring.datasource.url=jdbc:mysql://localhost:3306/studybuddy
# spring.datasource.username=your_username
# spring.datasource.password=your_passwordConfigure email notifications in application.properties:
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=${MAIL_USERNAME:}
spring.mail.password=${MAIL_PASSWORD:}Run the test suite:
mvn test- Lazy Loading - Optimized database queries
- Caching - Spring Boot caching for improved performance
- Pagination - Efficient data loading for large datasets
- Responsive Design - Optimized for all device sizes
- Spring Security - Form-based authentication
- CSRF Protection - Cross-site request forgery protection
- Session Management - Secure session handling
- Input Validation - Server-side validation for all inputs
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License
- Spring Boot team for the excellent framework
- Tailwind CSS for the beautiful utility-first CSS
- Chart.js for the interactive charts
- Font Awesome for the comprehensive icon library
If you have any questions or need help, please:
- Open an issue on GitHub
- Contact me at rbhaskar2862@gmail.com
StudyBuddy - Making academic life more organized and efficient! πβ¨