Projects

Selected work from CS50W, CS50AI, CS50P, and CS50x highlighting full-stack development with Django/Flask, JavaScript, SQL, APIs, and applied AI concepts including machine learning, NLP, search, optimization, and reinforcement learning.

🕸️ 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 for drivers, constructors, race calendar, and 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 and edit-post features driven by fetch requests without full page reloads.
  • Pagination and clean templates for readability and scalability.
Demo of Mail

Mail (SPA Email Client)

Single-page email client built with JavaScript. Loads Inbox, Sent, and 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 for compose, mailbox lists, and 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 for listings, bids, comments, categories, and watchlists.
  • Authorization rules for bidding/closing and watchlist UX.
  • Clean templates with reusable components and validation feedback.

🧠 CS50AI Projects

Traffic

Built a convolutional neural network in TensorFlow/Keras to classify traffic sign images across multiple categories. Focused on image preprocessing, model design, training, and evaluation.

Why it’s strong: practical machine learning workflow, computer vision, and model tuning.

GitHub
  • Preprocessed image data into a format usable for CNN training.
  • Built and trained a TensorFlow/Keras model with convolution, pooling, dense, and dropout layers.
  • Strengthened understanding of overfitting, architecture choices, and model evaluation.

Attention

Worked with transformer-based language modeling concepts by analyzing and visualizing self-attention patterns in masked language processing tasks.

Why it’s strong: modern NLP exposure, transformer concepts, and attention visualization.

GitHub
  • Used a transformer model to inspect masked token prediction behavior.
  • Generated visual attention diagrams for layers and heads.
  • Built intuition for how modern NLP models represent relationships between words.

Nim

Implemented a reinforcement learning agent using Q-learning to learn how to play Nim through self-play. Focused on state/action values, exploration, and iterative improvement.

Why it’s strong: reinforcement learning fundamentals and algorithmic problem solving.

GitHub
  • Implemented Q-value updates, best-future-reward logic, and epsilon-greedy action selection.
  • Trained the agent through repeated self-play games.
  • Demonstrated how an agent can improve performance from experience rather than hard-coded rules.

Shopping

Built a machine learning classifier to predict online shopping revenue outcomes from session data using scikit-learn, then evaluated model performance with sensitivity and specificity.

Why it’s strong: applied classification, feature handling, and evaluation metrics.

GitHub
  • Prepared structured tabular data for a supervised learning model.
  • Used K-nearest neighbors with scikit-learn for binary classification.
  • Evaluated results using performance metrics beyond simple accuracy.

PageRank

Implemented the PageRank algorithm using both sampling and iterative approaches to estimate the importance of pages in a linked corpus.

Why it’s strong: probability-based reasoning, graph algorithms, and search foundations.

GitHub
  • Modeled transition probabilities between linked pages.
  • Computed rankings through both random sampling and iterative convergence.
  • Strengthened understanding of ranking systems and probabilistic search methods.

Crossword

Built a crossword generator using constraint satisfaction techniques such as node consistency, arc consistency, heuristics, and backtracking search.

Why it’s strong: optimization, constraints, and structured search strategies.

GitHub
  • Applied node and arc consistency to reduce the search space.
  • Used heuristics such as MRV, degree, and least-constraining-value ordering.
  • Implemented backtracking search to construct valid puzzle solutions.

🐍 CS50P Projects

Demo of F1 History CLI

F1 History CLI

Python command-line app that pulls Formula 1 race and qualifying results via the Jolpica/Ergast F1 API. Supports driver and constructor standings and includes a pytest test suite.

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

GitHub
  • Parses JSON payloads with graceful error handling.
  • Reusable API wrapper and CLI argument parsing.
  • pytest coverage for endpoints, parsing, and formatting.

Jar (OOP Demo)

Python class that models a jar with capacity, add/remove methods, and current fill state. A concise example of object-oriented design, validation, and testable program structure.

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

GitHub
  • Constructor enforces capacity rules.
  • Guard clauses prevent negative fill states and overflow.
  • Good teaching sample for class design and 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.

Why it’s strong: full-stack app, API + database + templating, and interactive UI.

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

Finance

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

Why it’s strong: authentication, session management, database CRUD, and input validation.

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

Sports Homepage & Quiz

Responsive multi-page static site highlighting favorite NBA and football players and teams, plus an interactive sports quiz built with vanilla JavaScript.

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

GitHub
  • Multi-page navigation with dropdown menus.
  • Interactive quiz with JavaScript click handlers and instant feedback.
  • Bootstrap styling with custom CSS overrides.
  • Accessible headings and semantic markup.

Fiftyville SQL Mystery

Investigative SQL project querying a relational database of phone logs, flights, and ATM use to solve a fictional crime through filtering, joins, and inference.

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

GitHub
  • Joined evidence across multiple related tables.
  • Used stepwise elimination querying to narrow suspects.
  • Summarized findings tied to the narrative solution.