SpringBootApplication
An application made with the Spring framework, studying the concepts from basic to advanced
Install / Use
/learn @GabrielNat1/SpringBootApplicationREADME
<div align="center">
<details> <summary> <h1> <strong> 📚 Documentation V1 </strong> </summary>
<details> <summary> <h1> <strong> 📚 Documentation V2 </strong> </summary>
Spring Boot Application Course
This repository contains a structured Spring Boot application developed step-by-step, following modern backend development practices. The project includes database integration, error handling, authentication, and user security using JWT.
🧱 Project Overview
This application was built to explore and learn key concepts in the Spring ecosystem:
- 🌱 Spring Framework & Spring Boot fundamentals
- ⚡ Creating projects with Spring Initializr
- 🛠️ Using profiles in IntelliJ
- 🗂️ Spring Boot project structure
- 💾 Persistence with Spring Data JPA
- 🐘 PostgreSQL configuration
- 🔗 RESTful Product API
- 🚨 Global and custom exception handling
- 🔒 Authentication and security with Spring Security and JWT
<details> <summary> <h1> <strong> 📚 Documentation V1 </strong> </summary>
All documentation is organized by topic for easy navigation:
📖 Introduction
- Essential fundamentals to get started with Spring and set up the environment.
- 📖 01_spring_intro.md — Spring & Spring Boot Introduction
- 📖 02_initializr_project.md — Creating a project with Spring Initializr
- 📖 03_profiles_intellij.md — IntelliJ profile configuration
- 📖 04_structure.md — Basic project structure
- 📖 05_data_persistence.md — Data persistence with Spring Data JPA
- 📖 06_postgres_config.md — PostgreSQL setup
- 📖 07_product_api.md — Creating the Product API
- 📖 08_exception_handling.md — Exception handling
- 📖 09_global_exceptions.md — Global exception handling
- 📖 10_security_jwt.md — Authentication & Security (JWT)
- 📖 11_user_auth_routes.md — User authentication and route protection
⚙️ Setup
- Prepare the environment to run the project.
- ⚙️ prerequisites.md — Prerequisites
- ⚙️ installation.md — Installation
- ⚙️ environment-variables.md — Environment Variables
- ⚙️ running-locally.md — Running Locally
🏛️ Architecture
- Structure, layers, and patterns of the application.
- 🏛️ layers.md — Architecture Layers
- 🏛️ modules.md — Modules
- 🏛️ domain-model.md — Domain Model
- 🏛️ rest-api-structure.md — REST API Structure
- 🏛️ diagrams.md — Diagrams
🚀 Features
- Main features that make up the application.
- 🚀 authentication.md — Authentication
- 🚀 products.md — Products
- 🚀 cart.md — Cart
- 🚀 captcha.md — Captcha
📦 API Reference
- API routes, patterns, and responses.
- 📦 endpoints.md — Endpoints
- 📦 request-response-structure.md — Request/Response Structure
- 📦 error-handling.md — Error Handling
- 📦 pagination.md — Pagination
- 📦 versioning.md — Versioning
📑 Reference
- Codes, conventions, and data formats.
- 📑 status-codes.md — HTTP Status Codes
- 📑 common-errors.md — Common Errors
- 📑 conventions.md — API Conventions
- 📑 data-types.md — Data Types
🛡️ Security
- Protection, authentication, and security mechanisms.
- 🛡️ jwt.md — JWT Authentication
- 🛡️ captcha.md — Captcha
- 🛡️ RateLimitingFilter.md — Rate Limiting
- 🛡️ LoggingInterceptor.md — Logging
- 🛡️ vpn.md — VPN/Proxy Considerations
🛰️ VPN Advanced
- Advanced VPN filtering and analysis tools.
- 🛰️ overview.md — VPN Advanced Overview
- 🛰️ checker.md — VPN Checker
- 🛰️ risk.md — VPN Risk Service
- 🛰️ monitor.md — VPN Monitor
- 🛰️ filter.md — Anti-VPN Filter
- 🛰️ status.md — VPN Status Enum
- 🛰️ config.md — VPN Config
- 🛰️ integration.md — Integration Guide
- 🛰️ redis.md — Redis & ReactiveRedis
⚙️ Operations / DevOps
- Monitoring, logs, metrics, and system maintenance.
- ⚙️ monitoring.md — Monitoring
- ⚙️ logging-structure.md — Logging Structure
- ⚙️ metrics.md — Metrics
- ⚙️ health-checks.md — Health Checks
- ⚙️ troubleshooting.md — Troubleshooting
- ⚙️ ci-cd.md — CI/CD
<details> <summary> <h1> <strong> 📚 Documentation V2 </strong> </summary>
</details><strong>future documentation v2
🤝 Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
📄 License
This project is licensed under the MIT License.
