Skip to main content

Module 15: Final Project

Project Objective​

Develop a complete application that demonstrates your mastery of Spring Boot by integrating the concepts learned throughout the course.

Estimated Duration: 20-30 hours


Project Options​

Choose one of the following four projects:

Option A: E-Commerce Platform​

A complete e-commerce platform with:

  • Product catalog
  • Cart management
  • Order system
  • Payment (simulation)
  • Notifications

Option B: Task Management System​

A task/project management system with:

  • Project and task management
  • Task assignment
  • Time tracking
  • Reports and statistics
  • Real-time notifications

Option C: Booking API​

A booking system (hotels, restaurants, events) with:

  • Resource catalog
  • Availability and calendar
  • Booking process
  • Confirmation and reminders
  • Admin dashboard

A complete authentication system with:

  • Registration with email validation
  • JWT login
  • Password recovery via email
  • Role management (USER/ADMIN)
  • User administration

Option E: Contact Form and Lead Management​

A contact form system with lead management (simplified CRM):

  • Public contact form → automatically creates a Lead
  • Conversion pipeline (NEW → CONTACTED → QUALIFIED → CONVERTED)
  • PostgreSQL storage for leads, messages, and notes
  • Automatic email sending (admin notification + confirmation)
  • Automatic reminders for uncontacted leads (@Scheduled)
  • Admin dashboard with pipeline statistics

Technical Requirements​

Mandatory (70 points)​

CategoryRequirementPoints
ArchitectureClean MVC structure5
Layer separation (Controller/Service/Repository)5
DTOs for data transfers5
REST APIComplete CRUD endpoints5
Appropriate HTTP codes3
Input validation (@Valid)5
PersistenceSpring Data JPA5
Entity relationships (OneToMany, ManyToMany)5
Custom queries3
SecuritySpring Security configured5
JWT authentication5
Roles and authorizations4
TestsUnit tests (min 10)5
Integration tests (min 5)5
Coverage > 60%5

Optional (30 bonus points)​

CategoryRequirementPoints
CacheRedis caching5
MessagingRabbitMQ integration5
WebSocketReal-time5
DockerDockerfile + docker-compose5
CI/CDGitHub Actions pipeline5
DocumentationSwagger/OpenAPI5
MonitoringActuator + Prometheus5
MicroservicesDistributed architecture10

Project Structure​

projet-final/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── projet/
│ │ │ ├── ProjetApplication.java
│ │ │ ├── config/
│ │ │ │ ├── SecurityConfig.java
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ ├── AuthController.java
│ │ │ │ └── ...Controller.java
│ │ │ ├── dto/
│ │ │ │ ├── request/
│ │ │ │ └── response/
│ │ │ ├── exception/
│ │ │ │ ├── GlobalExceptionHandler.java
│ │ │ │ └── ...Exception.java
│ │ │ ├── model/
│ │ │ │ └── ...Entity.java
│ │ │ ├── repository/
│ │ │ │ └── ...Repository.java
│ │ │ ├── security/
│ │ │ │ ├── JwtService.java
│ │ │ │ └── ...
│ │ │ └── service/
│ │ │ └── ...Service.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── application-dev.yml
│ │ └── application-prod.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── projet/
│ ├── controller/
│ ├── service/
│ └── repository/
├── docker-compose.yml
├── Dockerfile
├── README.md
└── pom.xml

Deliverables​

1. Source Code​

  • Public or private GitHub repository
  • Clean and documented code
  • Complete README.md

2. Documentation​

The README.md must contain:

  • Project description
  • Technologies used
  • Installation instructions
  • Execution instructions
  • API documentation (endpoints)
  • Screenshots/demos

3. Demonstration​

  • Demo video (5-10 min)
  • Or live presentation
  • Show main features
  • Explain technical choices

Evaluation Criteria​

Technical Score (60%)​

CriteriaDescriptionWeight
FunctionalityThe application works correctly20%
ArchitectureWell-structured and maintainable code15%
Best practicesCompliance with Spring conventions15%
TestsCoverage and quality of tests10%

Quality Score (25%)​

CriteriaDescriptionWeight
CodeReadability and clarity10%
DocumentationREADME and comments10%
Error handlingRobustness5%

Presentation Score (15%)​

CriteriaDescriptionWeight
DemonstrationClear presentation10%
ResponsesMastery of the subject5%

Suggested Timeline​

WeekTasks
1Planning, project setup, data model
2Basic REST API, JPA entities, repository
3Business services, validation, DTOs
4Security, JWT, authentication
5Unit and integration tests
6Advanced features (cache, messaging, etc.)
7Docker, CI/CD, documentation
8Finalization, testing, demo preparation

Resources​

Official Documentation​

Tools​

  • IntelliJ IDEA or VS Code
  • Postman or Insomnia
  • Docker Desktop
  • Git

FAQ​

Q: Can I work in a team?​

A: Yes, teams of 2-3 people maximum. The expected workload increases proportionally.

Q: Can I propose another project?​

A: Yes, with prior approval. The project must demonstrate the same skills.

Q: Which database should I use?​

A: PostgreSQL recommended. H2 acceptable for development.

Q: Is deployment mandatory?​

A: No, but highly recommended (bonus points). Options: Heroku, Railway, AWS, etc.


Project Example​

See the detailed specifications for each option:


Good Luck!​

This project is an opportunity to demonstrate everything you have learned.

Feel free to:

  • Ask questions
  • Request clarifications
  • Share your progress

Back to home