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.
- 🔐 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.
| 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 |
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
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.
- 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.
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.
-
Clone the repository:
git clone https://github.com/kenzzzzzzzzzz/DailyHabit.git cd DailyHabit -
Run the application:
./mvnw spring-boot:run
-
Access Swagger UI:
http://localhost:8080/swagger-ui/index.html
- Mohammed Abdullah
- Kenzi ElDien
- Mazen Ali
- Mahmoud Walid
- Maria Awad
This project is licensed under the MIT License.
See the LICENSE file for details.