Skip to content

StudyBuddy - Personal Academic Task Manager | Spring Boot 3.5.6 + Java 21 + Tailwind CSS | Track assignments, manage courses, monitor grades, and boost academic productivity with a modern web application designed for college students.

Notifications You must be signed in to change notification settings

CodeWithReema/StuddyBuddySpringBootApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

StudyBuddy - Personal Academic Task Manager

A comprehensive Spring Boot web application designed to help college students organize their academic life, track assignments, manage courses, and monitor their academic performance.

🎯 Features

πŸ“Š Dashboard & Analytics

  • 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

πŸ“š Course Management

  • 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

πŸ“ Assignment Management

  • 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 Management

  • 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

πŸ—“οΈ Calendar Integration

  • Monthly Calendar View showing assignments by due date
  • Upcoming Deadlines with visual indicators
  • Assignment Scheduling with time management features

πŸ› οΈ Technical Stack

Backend

  • 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

Frontend

  • 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

Database

  • H2 Database - In-memory database for development
  • MySQL Support - Production-ready database configuration
  • JPA/Hibernate - Database persistence layer

Additional Features

  • 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

πŸš€ Getting Started

Prerequisites

  • Java 21 or higher
  • Maven 3.6 or higher
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/studybuddy.git
    cd studybuddy
  2. Build the project

    mvn clean install
  3. Run the application

    mvn spring-boot:run
  4. Access the application

    • Open your browser and navigate to http://localhost:8080
    • Default login credentials:
      • Username: admin
      • Password: admin

Database Access

  • H2 Console: http://localhost:8080/h2-console
  • JDBC URL: jdbc:h2:mem:studybuddy
  • Username: sa
  • Password: (leave empty)

πŸ“± Screenshots

Dashboard

Dashboard Comprehensive dashboard with assignment progress, statistics, and quick actions

Course Management

Courses Color-coded course management with search and filtering

Assignment Tracking

Assignments Detailed assignment tracking with priority and status management

πŸ—οΈ Project Structure

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

πŸ”§ Configuration

Database 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_password

Email Configuration

Configure 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:}

πŸ§ͺ Testing

Run the test suite:

mvn test

πŸ“ˆ Performance Features

  • 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

πŸ”’ Security Features

  • 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

🀝 Contributing

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

πŸ“ License

This project is licensed under the MIT License

πŸ‘¨β€πŸ’» Author

πŸ™ Acknowledgments

  • 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

πŸ“ž Support

If you have any questions or need help, please:


StudyBuddy - Making academic life more organized and efficient! πŸŽ“βœ¨

About

StudyBuddy - Personal Academic Task Manager | Spring Boot 3.5.6 + Java 21 + Tailwind CSS | Track assignments, manage courses, monitor grades, and boost academic productivity with a modern web application designed for college students.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published