Skip to content

ACME Learning Center Platform, illustrating development with Java, Spring Boot Framework, and Spring Data JPA on MySQL Database. It also illustrates open-api documentation configuration and integration with Swagger UI.

License

Notifications You must be signed in to change notification settings

RPG2-0-OpenSource-1ASI0729-2520-7327/GlassGo-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GlassGo Platform

Reference Documentation

For further reference, please consider the following sections:

Guides

The following guides illustrate how to use some features concretely:

Maven Parent overrides

Due to Maven's design, elements are inherited from the parent POM to the project POM. While most of the inheritance is fine, it also inherits unwanted elements like <license> and <developers> from the parent. To prevent this, the project POM contains empty overrides for these elements. If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.

Running the Application ( Important )

Instructions to run the application:

Change password in application.properties to the one from your MySQL database.

Run in src/main/java/com/glassgo/platform/GlassgoPlatformApplication.java

The public class of GlassgoPlatformApplication

Link de Swagger

http://localhost:8080/swagger-ui/index.html

Project Structure

glassgo-backend/
├── docs/
│   ├── class-diagram.puml
│   └── technical-stories.md
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── glassgo/
│   │   │           └── platform/
│   │   │               ├── GlassgoPlatformApplication.java
│   │   │               ├── analytics/                                          # Bounded Context
│   │   │               │   ├── application/
│   │   │               │   │   └── internal/
│   │   │               │   │       ├── commandservices/
│   │   │               │   │       │   └── ReportCommandServiceimpl.java
│   │   │               │   │       └── queryservices/
│   │   │               │   │           └── ReportQueryServiceImpl.java
│   │   │               │   ├── domain/
│   │   │               │   │   ├── model/
│   │   │               │   │   │   ├── aggregates/
│   │   │               │   │   │   │   └── Report.java                      # "Report" is the aggregate root
│   │   │               │   │   │   ├── commands/
│   │   │               │   │   │   │   └── CreateReportCommand.java
│   │   │               │   │   │   └── queries/
│   │   │               │   │   │       ├── GetReportByIdQuery.java
│   │   │               │   │   │       └── GetReportBySourceIdQuery.java
│   │   │               │   │   └── services/
│   │   │               │   │       ├── ReportCommandService.java
│   │   │               │   │       └── ReportQueryService.java
│   │   │               │   ├── infrastructure/
│   │   │               │   │   └── persistence/
│   │   │               │   │       └── jpa/
│   │   │               │   │           └── ReportRepository.java
│   │   │               │   └── interfaces/
│   │   │               │       └── rest/
│   │   │               │           ├── ReportController.java
│   │   │               │           ├── resources/
│   │   │               │           │   ├── CreateReportResource.java
│   │   │               │           │   └── ReportResource.java
│   │   │               │           └── transform/
│   │   │               │               ├── CreateReportCommandFromResourceAssembler.java
│   │   │               │               └── ReportFromEntityAssembler.java
│   │   │               └── shared/                                                     # Cross-cutting shared layer (following DDD principles)
│   │   │                   ├── domain/
│   │   │                   │   └── model/
│   │   │                   │       ├── aggregates/
│   │   │                   │       │   └── AuditableAbstractAggregateRoot.java
│   │   │                   │       └── entities/
│   │   │                   │           └── AuditableModel.java
│   │   │                   ├── infrastructure/
│   │   │                   │   ├── documentation/
│   │   │                   │   │   └── openapi/
│   │   │                   │   │       └── configuration/
│   │   │                   │   │           └── OpenApiConfiguration.java
│   │   │                   │   └── persistence/
│   │   │                   │       └── jpa/
│   │   │                   │           └── configuration/
│   │   │                   │               └── strategy/
│   │   │                   │                   └── SnakeCaseWithPluralizedTablePhysicalNamingStrategy.java
│   │   │                   └── interfaces/
│   │   │                       └── rest/
│   │   │                           ├── GlobalExceptionHandler.java
│   │   │                           └── resources/
│   │   │                               └── MessageResource.java
│   │   └── resources/
│   │       └── application.properties
│   └── test/
│       └── java/
│           └── com/
│               └── glassgo/
│                   └── platform/
│                       └── GlassgoPlatformApplicationTests.java
├── .gitignore
├── LICENSE.md
├── pom.xml
└── README.md

About

ACME Learning Center Platform, illustrating development with Java, Spring Boot Framework, and Spring Data JPA on MySQL Database. It also illustrates open-api documentation configuration and integration with Swagger UI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •