Skip to content

Repository files navigation

My mono-repo

  1. Project setup and configuration
  2. Core framework setup
  3. Database setup
  4. Domain model and repository layer
  5. Service layer
  6. API layer (controllers)
  7. Security configuration
  8. Error handling
  9. Data validation
  10. Logging configuration
  11. Monitoring and metrics
  12. API documentation
  13. Message Queue and event-driven architecture
  14. Caching mechanism
  15. Batch processing
  16. Scheduled tasks
  17. File handling and resource management
  18. Performance optimization
  19. Containerization and Local deployment
  20. CI/CD integration BONUS
  21. Testing OWSAP top 10 vulnerabilities

Pre-requisites

  1. Docker
  2. Java 17
  3. Gradlew 8.*
  4. Jacoco
  5. SonarQube 4.*

Profiles

As it will be used Postgres and H2, we need to create two profiles on the application.yml file.

./gradlew bootRun --args='--spring.profiles.active=prod'
./gradlew bootRun --args='--spring.profiles.active=dev'
## Database setup

1. PostgreSQL

```bash
dependencies {
    runtimeonly 'org.postgresql:postgresql'
}
  1. H2
dependencies {
    runtimeonly 'com.h2database:h2'
}

2. JACOCO

  1. All the required configuration on the build.gradle file.

3. SONARQUBE

Using Docker

  1. Pull the image from Docker Hub
docker pull sonarqube
  1. Run the image
docker run -d --name sonarqube -p 9000:9000 sonarqube
  1. Access the SonarQube dashboard
http://localhost:9000
  1. Run scan
./gradlew sonar
  1. Stop the container
docker stop sonarqube

About

Sample of a monolith

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages