Yet-Another-School-Project
- Java 21
- Maven 3.9.9
- PostgreSQL
or - Docker
To run the app you have two possible ways:
- Traditional way
- Using Docker (faster way)
To do so you simply have to do the following:
- Customize the provided
env.properties.sample
with your personal database information (remember to rename this file toenv.properties
otherwise it will be ignored by Spring) - Build the program using the provided Maven wrapper (
./mvnw clean package
while on the project's root directory) - Run the application using
java -jar target/yasp-1.0.0-BETA.war --spring.profiles.active=production
To run the application using docker it's as fast as snapping your fingers! You just have to do the following:
- Rename the provided
.env.sample
to.env
- Rename the provided
env.properties.sample
toenv.properties
- Start the Docker engine
- While on the project's root directory run
docker compose up -d
and wait for all the services to start
All the endpoints are pretty basic at the current app state. Each entity has its operations subset for basic CRUD operations, each one requiring its respective DTO with validation logic for a simplified control over which data is required by the user to be input, as well as to avoid adding all the validation annotations into the entities themselves.
An APIs documentation with a clear explanation of all the possible responses for each endpoint is available by visiting the /swagger-ui.html
page after booting up the application.
I also made available a public Postman workspace to quickly try out all application endpoints.
- Users management
- Classes creation
- Lessons scheduling
- Messages sending
- Tests assigning and graduation