- Project Description
- Frontend Website
- API Specifications
- Backend Server
- [To-Do] Features List
- CI/CD WorkFlow
- Directory Structure
A sample financial website that provides users with insights into their financial risk profiles and suggeste suitable financial products for investment, allowing them to manage their watchlists
Demo the project website at https://investsavvy.onrender.com/.
Note: Login authentication has been disabled, type out any username/password to access. The backend server will spin down with inactivity, please expect around ~50sec for the server to boot up while visiting the website the first time.
Frontend website and Backend server deployed using Render
Database hosted at Aiven for MySQL
- Landing Page - Main site to highlight the purpose and functionality of the website
- Account Login/registration - To be integrated with Auth0
- User Dashboard - for users to have an overview of their account
- Risk Assessment - Risk profile assessment to understand user’s investment background
- Historical Stock Data - A chart to showcase the past performance of stocks
- Watchlist - Page where user can create their own watchlist selection
More details in FrontEnd Documentation.
More details in API Documentation.
Node.js is used to create a web server listening for HTTP requests as per the defined API specification. It is connected to an externally hosted SQL database.
Aiven for MySQL is used to host the database. Database structure and more details in Database Documentation.
- External Financial API
- Auth0 integration
- Subcription plan and payment method like Stripe
GitHub Actions is used to trigger an automated workflow for the backend, this involves:
- containerizing the backend server into a docker image
- testing its API functionalities through automated unit testing, and
- deploying the server if everything works.
More details in CI/CD Documentation.
/public/frontend
: Contains the source code for the website/backend
: Contains the source code for the backend server/docs
: All additional documentation