Projects

Pokémon Memory Game

A Pokémon-themed memory matching game where players flip cards to find matching pairs. Supports single-player and multiplayer modes for up to 4 players, with a configurable setup screen featuring a spinning Pokéball animation.

Pokemon matching card game setupPokemon matching card game in progress

The game tracks moves and matches in real time across a 4×4 card grid, with smooth flip animations on every card and a Stats page to review past performance. Pokémon are loaded dynamically from the PokéAPI so each game pulls real Pokémon data.

Built with Angular and TypeScript as a team project. I owned the frontend — card flip animations, match detection logic, move counter, win state, and the PokéAPI integration. My partner handled the backend.

The trickiest part was locking input while two cards were already revealed, so players couldn't flip a third card before the mismatch animation finished and the cards flipped back.

View on GitHub

Capstone Project — Student Portal

A full student portal web application built as my capstone project at Mountainland Technical College. The portal supports two separate user types — students and administrators — each with their own login flow and dedicated interface.

Capstone project front pageCapstone loginCapstone registrationCapstone admin page

Students can register for an account, log in, and browse a course catalog displaying each course's name, credit hours, and tuition price. Administrators log in through a separate entry point and have access to an admin dashboard to manage the portal.

Built with React and Vite on the frontend. I handled the majority of the frontend — the landing page, student registration and login, the admin login and dashboard, and the course catalog UI. I also designed and wrote the SQL database schema for the courses table, defining the structure for course names, credit hours, and pricing.

One of the more interesting challenges was managing two completely separate login flows within the same app — making sure students and admins were routed to the right interfaces after authenticating, with the admin side locked off from regular student accounts.

View on GitHub