Skip to content

Latest commit

 

History

History
217 lines (168 loc) · 6.62 KB

File metadata and controls

217 lines (168 loc) · 6.62 KB

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! 🎓✨