Skip to content

brennardindanan/gamevault

Repository files navigation

GameVault

GameVault is a video game library and discovery system developed for COMP 3005: Database Management Systems at Carleton University.

The application allows users to organize, track, and discover video games across multiple platforms and storefronts while maintaining personalized libraries, wishlists, ratings, reviews, and gameplay statistics.

Features

  • Track owned and wishlisted games
  • Record play status and hours played
  • Store personal ratings and reviews
  • Search games by title
  • Browse games by genre, platform, studio, and tags
  • View detailed game metadata
  • Discover highly-rated games
  • Filter owned games by platform and gameplay features

Technologies Used

  • Python
  • SQLite
  • SQL
  • Relational Database Design
  • ER Modeling

Database Design

The system was designed using an Entity-Relationship model and converted into a normalized relational schema.

Core entities include:

  • User
  • Game
  • Platform
  • Genre
  • Studio
  • Tag

The database also implements several many-to-many relationships through junction tables:

  • UserGame
  • GamePlatform
  • GameGenre
  • GameStudio
  • GameTag

Installation

Clone the repository:

git clone https://github.com/brennardindanan/gamevault.git
cd gamevault

Optional database setup:

sqlite3 gamevault.db < schema.sql
sqlite3 gamevault.db < seed.sql

Running the Application

python3 app.py

Demonstration Video

https://youtu.be/DrSTpvvyvLw

Learning Outcomes

  • Relational Database Design
  • ER Modeling
  • Schema Design
  • SQL Query Development
  • Database Normalization
  • Primary and Foreign Keys
  • Many-to-Many Relationships
  • Python Database Integration
  • CLI Application Development

Author

Brennard Indanan

Carleton University – Bachelor of Computer Science

Releases

No releases published

Packages

 
 
 

Contributors

Languages