Projects

Selected work from CS50W, CS50P & CS50x highlighting full-stack development with Django/Flask, JavaScript, SQL, and APIs.

🕸️ CS50W Projects

Demo of F1 Analyst

F1 Analyst (Capstone)

Full-stack Django web app for exploring Formula 1 data. Integrates the Ergast/Jolpica F1 API to display schedules, results, and stats with clean, data-driven pages and performance-minded caching.

Why it’s strong: Django architecture, external API integration, reusable services, and UI built for real users.

GitHub
  • Django views + templates, structured routing, and reusable service layer for API calls.
  • API-driven pages (drivers, constructors, race calendar/results) with sensible caching.
  • Responsive layout with Bootstrap and dynamic navigation components.
Demo of Network

Network (Social Network)

Django social network app featuring user profiles, following/unfollowing, post creation, likes, and pagination. Uses JavaScript (fetch/AJAX) for dynamic interactions.

Why it’s strong: auth + relational data modeling + asynchronous UI updates.

GitHub
  • User authentication, profile pages, and follow graph relationships.
  • Likes + edit-post features driven by fetch requests (no full page reload).
  • Pagination + clean templates for readability and scalability.
Demo of Mail

Mail (SPA Email Client)

Single-page email client built with JavaScript. Loads Inbox/Sent/Archive views asynchronously and supports reading, replying, and archiving messages through API calls.

Why it’s strong: front-end architecture, async fetch workflows, and state-driven UI.

GitHub
  • SPA navigation with dynamic rendering (compose, mailbox lists, detail view).
  • Fetch requests for read/unread state and archive toggles.
  • Reply flow that pre-fills and formats message context.
Demo of Commerce

Commerce (Auctions)

eBay-style auction platform with Django models for listings, bids, comments, and categories. Includes watchlists, bidding logic, and winner determination at close.

Why it’s strong: database-driven features, forms, validation, and business rules.

GitHub
  • Django ORM modeling (listings, bids, comments, categories, watchlists).
  • Authorization rules for bidding/closing and watchlist UX.
  • Clean templates with reusable components and validation feedback.

🐍 CS50P Projects

Demo of F1 History CLI

F1 History CLI

Python command-line app that pulls Formula 1 race & qualifying results via the https://api.jolpi.ca/ergast/ F1 API. Supports driver & constructor standings. Includes pytest test suite. (Open gif above in new tab for a better view of the program in action)

Why it’s strong: real-world API integration, structured CLI UX, automated testing.

GitHub
  • Parses JSON payloads; graceful error handling.
  • Reusable API wrapper + CLI argument parsing.
  • pytest coverage: endpoints, parsing, formatting.

Jar (OOP Demo)

Python class that models a jar with capacity, add/remove methods, and current fill state. Used to teach encapsulation & method behavior.

Why it’s strong: clean OOP design; state validation; unit-test friendly.

GitHub
  • Constructor enforces capacity.
  • Guard clauses prevent negative fill / overflow.
  • Good teaching sample for class design & testing.

🌐 CS50x Projects

Demo of NBA Stats Hub

NBA Stats Hub

Flask web app that retrieves NBA player statistics from a public API, aggregates data, and displays visual charts, search filters, and team logos. (Open gif above in new tab for a better view of the program in action).

Why it’s strong: full-stack app; API + DB + templating; interactive UI.

GitHub
  • Player query assistant (AI-ready architecture).
  • Light / dark theme toggle; responsive layout.
  • Caching & combined stat logic for multi-team seasons.

Finance

Simulated stock trading platform: register/login, quote lookup, buy/sell, transaction history, portfolio value — built with Flask & SQLite.

Why it’s strong: auth, session mgmt, database CRUD, input validation.

GitHub
  • Password hashing & session management.
  • Real-time stock lookups via API.
  • Transaction ledger + portfolio aggregation.

Sports Homepage & Quiz

Responsive multi-page static site highlighting favorite NBA and football (soccer) players & teams, plus an interactive Sports Quiz built with vanilla JS. Uses semantic HTML, Bootstrap utilities, and custom CSS.

Why it’s strong: responsive layout, front-end theming, and client-side interactivity (instant feedback).

GitHub
  • Multi-page nav (dropdown menu).
  • Interactive quiz w/ JS click handlers & user feedback.
  • Bootstrap styling + custom CSS overrides.
  • Accessible headings & semantic markup.

Fiftyville SQL Mystery

Investigative SQL project: query a relational database (phone logs, flights, ATM use) to solve a fictional crime. Heavy JOINs, filtering, and inference.

Why it’s strong: practical SQL reasoning; multi-table joins; data sleuthing.

GitHub
  • Joined evidence across multiple related tables.
  • Stepwise elimination querying process.
  • Summarized findings tied to narrative solution.