#Work in Progress
##TODO
- Migrate Java Backend to TypeScript aws lambda functions
- Create an UX Planning and finish Angular front
- Implement Auth features
- Implement Notification features
The application simulates a Pizza Delivery webpage in which you can create an Account and Order Pizzas to be delivered in your house. The frontend was implemented with Angular and the backend is constructed with two MicroServices: Resouce-Server and Authorization-Server.
- Account creation with unique username and e-mail
- Password safely encoded and stored in database
- Credentials check and login with session
- Send a message to the registered e-mail containing a new password
- Option to update Name and Password when logged in
- Match creation with field validation
- Match participation in which you are not participating
- Match leaving in which you are participating
- Match delete if you are the owner
For the database modeling, a diagram with each table and relationships was created for the SportsBuddy application:
- Use the file configure-postgres.sql in order to give your PostGresSQL database the necessary configuration. This way we can properly use the different profiles:
dev
andprod
. - Use the file start_data-postgres.sql to initialize tables and constraints in your PostGresSQL database. So just run the application for the first time, it will automatically input data if not existent.
- After changes run
docker build -t sportsbuddy .
in a project root directory to build application image. - After image is fully built, run
docker run -d -p 8080:8080 sportsbuddy
to start the image - With a browser, access the app via http://localhost:8080/
- (Optional) run
docker logs -t <container>
to see the logs
Database for testing is in-memory type, for fast and convenient usage. It will be updated in the future. You won't be able to send the message via e-mail, unless account details are changed in application.properties file
Object Oriented Programming
Dependency Injection (Design pattern)
MVC Structure (Model, View, Controller)
- Java
- Spring-Boot
- Java Persistence API (JPA)
- Hibernate (object relational mapping)
- Thymeleaf (Frontend java engine)
- Maven (build, dependencies)
- Testing (JUnit, Mockito)
- Spring Security (Form based login)
- JavaScript (DOM manipulation)
- HTML
- Bootstrap
- Code coverage
- CircleCI