Gaming Library
A comprehensive microservice-based gaming collection management platform that allows users to manage their game libraries, search for games, and track their gaming collections. This project demonstrates modern full-stack development with microservice architecture.
This is a project that I can continually work on and update that is based around my hobbies (Gaming). I wanted to make it a microservice project. The backend parts were very familiar as they mirrored the types of development I have done in the past. This gave me a chance to see how well AI Agents can be used for development. For these I could ask the agent do things in a very detailed manner in small steps, and verify the result. I knew right away if it was following the same method I would have, and could ask questions or correct when it went off that path.
For the frontend parts, I had it help scaffold the site, and then created a "learning-mode" agent mode for Copilot that would help tutor me on adding parts to the Nextjs components so I could practice over time.
Architecture Overview
This is a microservice architecture consisting of multiple services that work together:
Core Services
Frontend (Next.js)
- User interface and client-side logic
- React-based responsive web application
- Hot reloading for development
Auth Service (FastAPI)
- User authentication and JWT token management
- User signup, login, and profile management
- Secure authentication endpoints
Game Service (FastAPI)
- IGDB (Internet Game Database) integration
- Game search and discovery features
- Game collections management
Shared Database (PostgreSQL)
- Centralized data storage for all services
- SQLAlchemy models and migrations
- Consistent data schema across services
Key Features
- Microservice Architecture: Scalable, maintainable service separation
- Full-Stack Development: Modern frontend with robust backend APIs
- Database Integration: PostgreSQL with SQLAlchemy ORM
- API Documentation: Auto-generated Swagger UI for all services
- Development Workflow: Docker Compose with hot reloading
- Code Quality: Pre-commit hooks, linting, and formatting
Tech Stack
- Backend: Python (FastAPI, SQLAlchemy, Alembic)
- Frontend: TypeScript (Next.js, React)
- Database: PostgreSQL
- Containerization: Docker & Docker Compose
- Development Tools: Poetry, Pre-commit, Pylint, Black, Flake8
Testing & Quality
- Comprehensive test coverage across all services
- VS Code task integration for testing workflows
- Pre-commit hooks for code quality
- TDD approach following established patterns
Future Roadmap
- AI: Add MCP server for the IGDB API. Add AI chat interface for user interaction.
- API Gateway: Request routing and rate limiting
- Enhanced Features: View other user collections, wishlists, social features
- CI/CD Pipeline: Automated testing and deployment
- Kubernetes: Container orchestration for production
- Social Features: Friends, recommendations, sharing