ResultRush is a web application designed to help people set, track and achieve personal goals. The app provides a tool for effective goal planning and management, helping users become more productive and successful.
The main functions of the application:
- Creating SMART goals. Users can create their own goals following the SMART principle. The application helps users to create specific, measurable, achievable, relevant goals and set deadlines for their achievement.
- Dashboard and progress report. The application provides an informative dashboard where users can track progress towards achieving each of their goals. Users can specify which steps have already been completed and which have yet to be completed.
https://resultrushfront.azurewebsites.net/
- Spring Boot Framework
- Angular Framework
- PostgreSQL
- Microsoft Azure
The application can be represented as the work of three layers independent of each other: a frontend that is implemented using Angular, a backend written on the Spring Framework and database.
This is an implementation of the classic three-level architecture of a web application which consists of a presentation layer, application layer and data layer.
The application implements a custom filter based on a JSON WEB Token(JWT). The JWT token can store some payload (user id e.g), which eliminates the need to make an additional request to the database.
The application uses triggers to reduce the load on the database and simplify data retrieval requests.
The application uses the concept of components. The components allowed me to flexibly manage the page by encapsulating all the styles, HTML structure and data into each individual component. For example, when displaying the main page, five components are involved: header component, sidebar component, categories component, goals component and footer component.
All three layers of the application are deployed as separate services on the Microsoft Azure cloud platform.
- JDK 17
- Node.js 18.17.1
- PostgreSQL 15
git clone https://github.com/igushkin/result-rush
