Skip to content

kenzzzzzzzzzz/DailyHabit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗓️ Daily Habit Tracker

A backend web application built with Java and Spring Boot that helps users build and maintain good habits by tracking their daily progress. Designed as part of an internship program, this project showcases RESTful API development, Spring Security integration, and clean architectural practices.


🚀 Features

  • 🔐 User Authentication: Register and log in securely using JWT-based authentication.
  • 📋 Habit Management: Create, update, delete, and organize daily habits.
  • Daily Tracking: Mark habits as completed and monitor progress over time.
  • 📊 Progress Visualization: View daily, weekly, and monthly habit completion stats.
  • 🔍 Filtering & Search: Filter habits by category or status.

🧱 Tech Stack

Layer Technology
Language Java 17
Framework Spring Boot
Security Spring Security + JWT
Database H2 (in-memory)
Testing JUnit 5, Mockito
API Docs Swagger / OpenAPI
Tools IntelliJ IDEA, GitHub, Postman

🧩 Project Structure

src/ 
├── controller/     # REST controllers 
├── service/        # Business logic 
├── repository/     # Data access layer 
├── entity/         # Entity classes 
├── dto/            # Data Transfer Objects 
├── config/         # Security and app configuration 
└── errorhandler/   # Custom exception handling

📚 What We Learned

This project was more than just a technical exercise—it was a mindset shift.

  • We mastered Spring Boot’s layered architecture and built secure, scalable APIs.
  • We learned to troubleshoot independently, gaining confidence with tools like Maven and IntelliJ.
  • We embraced clean code principles: realizing that code that runs isn’t enough—code that’s readable, testable, and maintainable is what truly matters.
  • We grew as a team, collaborating in a supportive environment and learning from each other and our mentors.

⚠️ Challenges Faced

  • Designing business logic for habit tracking required thoughtful planning.
  • Initial setup issues with IntelliJ and Maven were resolved with mentor support.
  • We learned to approach technical problems methodically, using documentation and community resources.

🔮 Future Improvements

While this internship round was incredibly rewarding, we’d love to see:

  • Continued mentorship and access to curated learning materials.
  • More opportunities to work on full-stack or deployment-focused tasks.

📦 Getting Started

  1. Clone the repository:

    git clone https://github.com/kenzzzzzzzzzz/DailyHabit.git
    cd DailyHabit
  2. Run the application:

    ./mvnw spring-boot:run
  3. Access Swagger UI:

    http://localhost:8080/swagger-ui/index.html
    

👥 Contributors

  • Mohammed Abdullah
  • Kenzi ElDien
  • Mazen Ali
  • Mahmoud Walid
  • Maria Awad

📄 License

This project is licensed under the MIT License.
See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages