This is a one semester school project about making a full-stack web application using Spring Boot, Vue.js, PostgreSQL and many other technologies. The goal was to make a clone of an app which helps electric vehicle users find available chargers, get email notifications when a nearby charger gets empty, and when their car has reached a certain battery percentage.
- Complete backend API representing the above explained world of cars, users and chargers using mock cars being handled by the backend.
- Swagger API documentation
- User authentication using Spring Security and JWT tokens
- Google maps integration
- PostgreSql database with a geospatial extension (PostGIS), which makes it possible to query the nearest chargers from the user's current location
- Live updates of battery percentages using websocket
- Dockerized frontend, backend and database, which makes it possible to launch the app everywhere without versions problems, using just one command
- Github Actions (CI/CD) pipeline building these docker images on every push to the master
using docker: docker-compose up -d
- app:
localhost:8081
- swagger:
localhost:8080/swagger-ui.html