The trading application developed by Jeter and Sakib showcases a
well-architected full-stack system combining an Angular frontend with
a Spring Boot backend. The sequence diagrams clearly illustrate key
workflows such as authentication, portfolio management, stock
buying/selling, and watchlist handling. Authentication is implemented
using JWT tokens alongside Bcrypt hashing for password security,
enabling secure, stateless communication between the client and
server. The backend follows best practices with JPA for database
operations and Jackson for JSON processing, while Swagger API
documentation ensures clarity and ease of testing. Additionally, both
the frontend and backend are containerized using Docker, making
deployment consistent, scalable, and environment independent.
The team also followed a structured development workflow by using
Linear and GitHub Issues along with pull requests on GitHub, helping
simulate a production-style environment with organized task tracking
and code reviews. On the frontend, the application features a clean
and interactive dashboard that visualizes market data, charts, and top
movers effectively. The system incorporates stock data seeding,
caching, and live price polling to deliver near real-time updates with
optimized performance. Features like virtual trading with an initial
balance, portfolio tracking, and smooth UI interactions create a
realistic trading experience. Overall, the project demonstrates strong
system design, secure authentication practices, seamless
frontend-backend integration, and modern DevOps practices through
Docker, resulting in a polished and production-ready application.
System Architecture
Angular 21 frontend communicates with Spring Boot 4 backend via REST.
The backend connects to MySQL and two external APIs — Finnhub for live
prices and Yahoo Finance for historical data. All stock prices are
cached to reduce API calls.
Authentication & Registration Flow
Full swimlane showing login with all alternative paths — user not
found, wrong password, and successful authentication. Also covers
registration with success and failure outcomes including auto-account
creation with $10,000 starting balance.
Full Transaction Workflow
Complete swimlane covering portfolio load, buy, sell, watchlist
management, market data with cache hit/miss, 20-second live polling,
and admin seeding endpoints.
Database ERD
All 7 tables with fields, primary keys, foreign keys, and
relationships. USERS is the central entity — accounts, holdings,
transactions, and watchlist all link via user_id.