Module 16: E-Contact Backend Project - Complete Guide
Module Objectives
This module guides you through the complete realization of the e-contact-backend project, a professional Spring Boot application with:
- Complete REST API for contact form
- JWT authentication and security
- PostgreSQL database
- Frontend integration
- Deployment with GitHub Codespaces
📦 Main GitHub Repository
Project Access
Repository: inskillflow-docs-formation-spring-boot-projet-e-contact-backend
This repository contains the complete source code, documentation, troubleshooting guides, and test frontend.
Module Plan
Practical Chapters
| # | Chapter | Duration | Description |
|---|---|---|---|
| 1 | Getting Started with Codespaces | 1h | GitHub Codespaces environment setup |
| 2 | Troubleshooting | 1h30 | Solving common issues |
| 3 | Frontend Integration | 1h | Connecting the frontend to the backend |
| 4 | Supplementary Course | 3h | Modules 22-28 - In-depth study |
| 5 | Advanced Security | 4h | Modules 11-18 - Step-by-step security |
Estimated total duration: 10-12 hours
🔗 Project Resources
Source Code and Documentation
| Resource | Link | Description |
|---|---|---|
| Main Repository | GitHub | Complete project source code |
| Troubleshooting | Troubleshooting folder | Problem-solving guides |
| Frontend | Frontend folder | Simple frontend to test the API |
| Frontend Guide | Integration guide | Frontend integration with Codespaces |
Courses and Training
| Resource | Link | Description |
|---|---|---|
| Supplementary Course | Course folder | Complete courses (especially modules 22-28) |
| Detailed Security | Security Annexes | Modules 11-18 on security |
Project Architecture
e-contact-backend/
├── 📁 src/main/java/
│ ├── 📁 config/ # Spring Security, CORS configuration
│ ├── 📁 controller/ # REST Controllers (Contact, Auth, Admin)
│ ├── 📁 dto/ # Data Transfer Objects
│ ├── 📁 model/ # JPA Entities (Lead, User)
│ ├── 📁 repository/ # Spring Data JPA Repositories
│ ├── 📁 security/ # JWT, Filters, Authentication
│ └── 📁 service/ # Business logic
├── 📁 src/main/resources/
│ └── application.yml # Configuration
├── 📁 frontend/ # HTML/JS test frontend
├── 📁 troubleshooting/ # Troubleshooting guides
└── 📁 cours/ # Documentation and courses
└── 📁 annexes-security-1/ # Detailed security course
Quick Start
Option 1: GitHub Codespaces (Recommended)
- Open the repository on GitHub
- Click on Code → Codespaces → Create codespace on main
- Wait for the environment to load (~2 min)
- Launch the application:
./mvnw spring-boot:run
Option 2: Locally
# Clone the repository
git clone https://github.com/hrhouma1/inskillflow-docs-formation-spring-boot-projet-e-contact-backend.git
# Access the folder
cd inskillflow-docs-formation-spring-boot-projet-e-contact-backend
# Launch the application
./mvnw spring-boot:run
📋 Prerequisites
Required Knowledge
- Modules 1-13 of this training
- Basics of Spring Boot and Spring MVC
- Understanding of Spring Data JPA
- Familiarity with REST APIs
Necessary Tools
| Tool | Version | Usage |
|---|---|---|
| GitHub Account | - | For Codespaces |
| Web Browser | Recent | To test the API and frontend |
| (Optional) Java | 17+ | If running locally |
| (Optional) Maven | 3.8+ | If running locally |
| (Optional) PostgreSQL | 14+ | If running locally |
Recommended Learning Path
Suggested Order
- Chapter 1 - Start by setting up your Codespaces environment
- Chapter 2 - Refer to troubleshooting if you encounter issues
- Chapter 3 - Connect the frontend to visualize the result
- Chapter 4 - Deepen your knowledge with supplementary courses
- Chapter 5 - Master Spring Security and JWT security
Developed Skills
By the end of this module, you will be able to:
| Skill | Level |
|---|---|
| Create a complete REST API | ⭐⭐⭐⭐⭐ |
| Implement JWT Authentication | ⭐⭐⭐⭐⭐ |
| Use GitHub Codespaces | ⭐⭐⭐⭐ |
| Integrate a frontend | ⭐⭐⭐⭐ |
| Debug a Spring application | ⭐⭐⭐⭐⭐ |
| Configure Spring Security | ⭐⭐⭐⭐⭐ |
📞 Support
If you encounter difficulties:
- First consult the troubleshooting guide
- Check the GitHub issues
- Contact your instructor
⏭️ Next Step
Start with GitHub Codespaces →