Skip to content
This repository was archived by the owner on Jan 14, 2026. It is now read-only.

Assignment 5 – Decisions and Tech Stack

Choose a tag to compare

@jasonfyw jasonfyw released this 09 Oct 03:58
· 18 commits to master since this release
b170219

🚀 Overview of This Release

Progress

This release marks a beginning in the development of FinQuest - transitioning from planning to actual implementation. We've built the foundational codebase for both the frontend web application and the backend API service, establishing the core infrastructure that will power FinQuest's web app

Building on the architecture decisions and planning completed in the previous release, we have:

  • Implemented a modern Next.js web application with authentication and basic pages
  • Built a FastAPI backend service with Supabase integration
  • Established the development environment and tooling for both frontend and backend

➕ Added

📂 Architecture Decision Records (ADRs)

🌐 Frontend Web Application app/web

Tech Stack: Next.js 15, React 19, TypeScript, Mantine UI, Supabase

Core Pages

  • Landing Page (pages/index.tsx)
    • Modern hero section with gradient background
    • Call-to-action buttons for signup/login
    • Responsive navigation header with logo
    • Dark/light mode toggle support
  • Authentication Pages (pages/login.tsx & pages/signup.tsx)
    • pages/login.tsx - User login with email/password and Google OAuth
    • pages/signup.tsx - New user registration
    • pages/onboarding.tsx - Post-signup onboarding flow

Components

Authentication & State Management

  • contexts/AuthContext.tsx - Comprehensive authentication context with:
    • User session management
    • Sign up, sign in, sign out functions
    • Google OAuth integration
    • Protected route handling
  • lib/supabase.ts - Supabase client configuration

🔧 Backend API Service (app/services/api/)

Tech Stack: FastAPI, Python 3.9+, Supabase, SQLAlchemy, uv package manager

Core Application

  • src/finquest_api/main.py - FastAPI application with:
    • CORS middleware configuration
    • Router registration
    • Swagger/ReDoc API documentation
    • Version 0.1.0
  • src/finquest_api/config.py - Application settings and configuration
  • src/finquest_api/schemas.py - Pydantic models for request/response validation
  • src/finquest_api/auth_utils.py - Authentication utility functions
  • src/finquest_api/supabase_client.py - Supabase client configuration

API Routers

  • routers/health.py - Health check and readiness endpoints
  • routers/api.py - Main API v1 endpoints
  • routers/auth.py - Authentication endpoints

🏗️ Project Structure

app/
├── web/                    # Next.js frontend application
│   ├── pages/             # Page routes
│   ├── components/        # Reusable React components
│   ├── contexts/          # React contexts (Auth, etc.)
│   ├── lib/               # Utility libraries
│   ├── assets/            # Images and static assets
│   └── public/            # Public assets
└── services/
    └── api/               # FastAPI backend service
        └── src/
            └── finquest_api/
                ├── routers/      # API route handlers
                ├── main.py       # FastAPI app
                ├── config.py     # Settings
                ├── schemas.py    # Data models
                └── auth_utils.py # Auth utilities

🔄 Architecture Integration

This release implements the following architecture decisions:

  • ✅ Next.js + React frontend (ADR-002)
  • ✅ FastAPI backend (ADR-003)
  • ✅ TypeScript for type safety (ADR-004)
  • ✅ RESTful API architecture (ADR-005)
  • ✅ Supabase for database and auth (ADR-009)
  • ✅ Mantine UI component library (ADR-010)

🐛 Issue Summary

No major issues in this release. The codebase compiles and runs successfully with all core features functional.

Known Limitations

  • Onboarding flow is scaffolded but not fully implemented
  • Portfolio management features are pending implementation
  • Market data integration is planned for next release
  • Testing suite needs to be added