Project Overview

Investory is a portfolio management website I developed with three teammates during our induction to the 2024 HSBC Graduate Program. Working within strict time constraints (just over 7 full development days), our team built this project from scratch, with most team members having no prior programming experience.

As Team Lead and Lead Developer, I coordinated team responsibilities, made technical decisions, and implemented critical infrastructure including a custom blue/green deployment system. Despite the challenges, this became one of the projects I'm most proud of.

Live Demo

Watch the complete demo showcasing the portfolio management features, real-time stock tracking, and user interface.

Project Highlights

  • Rapid Development: Complete full-stack application in 7 development days
  • Team Leadership: Led daily standups and coordinated responsibilities based on team strengths
  • Custom Deployment: Implemented blue/green deployment with zero downtime
  • Real-time Data: Live stock price tracking and portfolio analytics

Technical Implementation

The application was built using NodeJS for both frontend and backend, with MySQL for data persistence. I designed and implemented a custom deployment system using PowerShell scripts that enabled automatic deployments to both staging and production environments.

Architecture Overview

  • Frontend: Express with server-side rendering
  • Backend: Express REST APIs for stock data and portfolio management
  • Database: MySQL for transaction history and portfolio data
  • Deployment: AWS EC2 with NGINX load balancing
  • SSL: Automated certificate generation with win-acme

Custom Deployment System

I implemented a sophisticated blue/green deployment system that:

  • Monitored BitBucket repository for branch changes
  • Automatically deployed staging and production environments
  • Used NGINX to route traffic to fallback servers during updates
  • Achieved zero-downtime deployments with ~1 minute deploy times

Challenges & Solutions

Building a complete portfolio management system in 7 days with a mostly inexperienced team presented unique challenges that required creative solutions and strong leadership.

Team Coordination

With three team members having no prior programming experience, I had to quickly assess everyone's strengths and assign responsibilities accordingly:

  • UI/UX Designer: Created all designs in Figma and exported HTML templates
  • Full Stack Developer: Pair/mob programming on core features and frontend integration
  • Backend/Finance Specialist: Implemented complex financial calculations and portfolio analytics

Technical Challenges

Several technical hurdles had to be overcome rapidly:

  • Learning NodeJS: First time using NodeJS despite Python Flask background
  • SSL Configuration: Setting up secure HTTPS with automated certificate renewal
  • Real-time Data: Integrating live stock price feeds with portfolio calculations
  • Deployment Automation: Building a custom CI/CD pipeline

Results & Impact

Despite the aggressive timeline and team constraints, the project delivered impressive results and valuable learning experiences for the entire team.

Delivered Features

  • Dashboard: Real-time portfolio overview with performance metrics
  • Stock Tracking: Live price updates and historical charts
  • Transaction Management: Complete buy/sell transaction history
  • Market Data: Comprehensive market information and analysis
  • Automated Deployment: Zero-downtime production deployments

Key Learnings

This project provided invaluable insights into rapid development, team leadership, and deployment automation:

  • NodeJS Proficiency: Overcame initial hesitations and gained solid NodeJS skills
  • Infrastructure Management: Hands-on experience with NGINX, SSL, and AWS EC2
  • Team Leadership: Learned to coordinate diverse skill levels effectively
  • Deployment Systems: Built and operated a production deployment pipeline

Future Improvements

Given more time, several enhancements would strengthen the platform:

  • Cash Balance Handling: Proper representation of uninvested cash
  • Multi-currency Support: International stock and currency conversion
  • Docker Deployment: Containerized deployment replacing PowerShell scripts
  • Authentication System: User login and portfolio security
  • Unit Testing: Comprehensive test coverage for reliability

Project Gallery