Skip to content

dracudev/questlog-app

Repository files navigation

Questlog

A social network for gamers - Think Letterboxd, but for video games.

License: MIT Node.js TypeScript PNPM Astro NestJS

Questlog is a comprehensive social platform where gamers can discover games, write reviews, connect with fellow players, and build personalized gaming profiles. Built with modern web technologies and designed for scalability, it features a static-first architecture that combines optimal performance with selective interactivity for dynamic user experiences.

Last Updated: November 4, 2025

Features

Authentication & User Management

  • Secure JWT Authentication with refresh tokens and role-based access control
  • User Profiles with customizable avatars, bios, and gaming statistics
  • Role-Based Permissions supporting User, Moderator, and Admin roles
  • Persistent Sessions with automatic token refresh

Game Discovery & Management

  • Comprehensive Game Catalog with detailed information, covers, and metadata
  • Advanced Search & Filtering by genre, platform, developer, and more
  • Game Details Pages with aggregated reviews and related games
  • External API Integration ready for RAWG, IGDB, and Steam APIs

Review System

  • Rich Review Creation with ratings, content, and spoiler warnings
  • Social Interactions including likes, comments, and sharing
  • Review Moderation tools for community management
  • Personalized Feeds showing reviews from followed users

Social Features

  • User Following system with activity feeds
  • Social Statistics tracking followers, reviews, and engagement
  • Activity Streams showcasing user interactions and achievements
  • Community Features for discovering new users and content

Admin & Moderation

  • Admin Dashboard for platform management
  • Content Moderation tools for reviews and user-generated content
  • User Management with role assignment and account controls
  • Analytics & Insights for platform health monitoring

Performance & Developer Experience

  • Hybrid Architecture with static generation and dynamic components
  • Type-Safe API with comprehensive shared types across the stack
  • Modern Development Stack with hot reload and optimized builds
  • Comprehensive Testing suite with unit, integration, and E2E tests

Architecture

Questlog uses a modern PNPM monorepo architecture designed for scalability and developer productivity:

Frontend (Astro 5.x + React 19.x)

  • Astro 5.x with static output by default for excellent SEO and performance
  • React 19.x Islands for selective interactivity and optimal JavaScript delivery
  • Tailwind CSS v4 with @tailwindcss/vite plugin and custom design system
  • Radix UI primitives for accessible, unstyled component foundations
  • Nanostores for lightweight, efficient state management

Backend (NestJS 11.x + Prisma 6.x)

  • NestJS 11.x framework with modular, domain-driven architecture
  • Prisma ORM v6.14.0 with PostgreSQL for type-safe database operations
  • JWT Authentication with HTTP-only cookies and role-based access control
  • Comprehensive REST API with Swagger/OpenAPI documentation

Infrastructure

  • Docker Compose for development environment consistency
  • PostgreSQL 13+ as primary database
  • Redis for caching and session management (planned)
  • MinIO for S3-compatible file storage (planned)
  • Prometheus monitoring and centralized logging (planned)
questlog-app/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ backend/          # NestJS API server
β”‚   β”œβ”€β”€ frontend/         # Astro + React frontend
β”‚   └── e2e/              # End-to-end tests
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ shared-types/     # TypeScript type definitions
β”‚   β”œβ”€β”€ ui-components/    # Shared React components
β”‚   β”œβ”€β”€ utils/            # Utility functions
β”‚   β”œβ”€β”€ config/           # Shared configurations
β”‚   └── game-apis/        # External API integrations
└── docker/               # Docker configurations

Quick Start

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/dracudev/questlog-app.git
    cd questlog-app
  2. Install dependencies

    pnpm install
  3. Set up environment variables

    cp .env.example .env.local
    # Edit .env.local with your configuration
  4. Start development services

    pnpm docker:dev        # Start PostgreSQL, Redis, MinIO, etc.
  5. Set up the database

    pnpm db:migrate        # Run database migrations
    pnpm db:seed           # Seed with sample data
  6. Start development servers

    pnpm dev               # Start both backend and frontend

Development URLs

πŸ“š Documentation

Comprehensive documentation is available in the /docs directory:

Development Scripts

General Commands

pnpm dev                   # Start both backend and frontend
pnpm build                 # Build all applications
pnpm test                  # Run all tests
pnpm lint                  # Lint all packages
pnpm type-check            # Type check all packages

Backend Specific

pnpm dev:backend           # Start backend with hot reload
pnpm build:backend         # Build backend for production
pnpm test:backend          # Run backend tests

Frontend Specific

pnpm dev:frontend          # Start frontend with hot reload
pnpm build:frontend        # Build frontend for production
pnpm test:frontend         # Run frontend tests

Database Management

pnpm db:migrate            # Create and run migrations
pnpm db:seed               # Seed database with sample data
pnpm db:studio             # Open Prisma Studio GUI
pnpm db:reset              # Reset database (destructive)

Docker Services

pnpm docker:dev            # Start development containers
pnpm docker:dev:down       # Stop development containers
pnpm docker:dev:logs       # View container logs
pnpm docker:dev:build      # Rebuild and start containers

Testing

Questlog includes comprehensive testing across all layers:

  • Unit Tests: Jest with React Testing Library
  • Integration Tests: Supertest for API testing
  • E2E Tests: Cypress for end-to-end workflows
  • Type Checking: TypeScript strict mode across all packages
pnpm test                  # Run all tests
pnpm test:backend          # Backend tests only
pnpm test:frontend         # Frontend tests only
pnpm test:e2e              # End-to-end tests

Deployment

Development

  • Backend: Local development with hot reload
  • Frontend: Astro dev server with React Fast Refresh
  • Database: PostgreSQL via Docker Compose

Production

  • Frontend: Vercel with automatic deployments
  • Backend: Railway/Render with Docker containers
  • Database: Neon/Supabase with automated backups
  • CDN: Cloudflare for static assets and performance

Roadmap

Phase 1: Core Foundation

  • Project architecture and monorepo setup
  • Authentication system with JWT and roles
  • Complete backend API with all domains
  • Frontend architecture with Astro + React
  • Comprehensive state management
  • Type-safe API integration
  • Radix UI integration for accessibility
  • Design system with CSS custom properties

Phase 2: UI Development (Current Phase - Q4 2025)

  • Core layout refactoring with Radix UI (Navbar, Footer, ThemeToggle)
  • User profile feature implementation (complete 3-layer architecture)
  • Authentication pages (login, register)
  • Mobile-first responsive design patterns
  • Optimistic UI updates with automatic rollback
  • Games catalog and filtering interface
  • Review creation and editing UI
  • Advanced search interface
  • Activity feed implementation with real-time updates
  • Enhanced mobile responsive improvements

Phase 3: Social Features Enhancement (Q1 2026)

  • Real-time activity feed with polling
  • Comment system for reviews
  • Enhanced user discovery and recommendations
  • Notification center UI
  • Advanced social interactions (mentions, shares)

Phase 4: Game Integration & APIs (Q2 2026)

  • RAWG API integration for game data
  • Steam OAuth and library sync
  • Achievement tracking system
  • Personal game lists (wishlist, playing, completed, backlog)
  • IGDB integration for enhanced metadata

Phase 5: Indie Showcase (Q3 2026)

  • Developer portal and registration
  • Game submission system
  • Demo hosting and embedding
  • Developer analytics dashboard
  • Featured indie games section

Phase 6: Advanced Features (Q4 2026+)

  • AI-powered game recommendations
  • Mobile applications (React Native)
  • Real-time chat and messaging
  • WebSocket integration for live updates
  • Advanced analytics and insights
  • Multi-language support (i18n)

Contributing

We welcome contributions from the gaming and development community! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes with proper tests and documentation
  4. Commit your changes: git commit -m 'Add amazing feature'
  5. Push to the branch: git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Code Style: We use Prettier and ESLint for consistent formatting
  • Type Safety: All code must be fully typed with TypeScript
  • Testing: New features require comprehensive test coverage
  • Documentation: Update relevant documentation for new features
  • Commits: Use conventional commit messages

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Letterboxd for inspiration on social media for media consumption
  • RAWG API and IGDB for comprehensive game databases
  • NestJS and Astro communities for excellent frameworks
  • The gaming community for feedback and feature requests

Support


Built with care for the gaming community

Website β€’ Documentation β€’ API Docs β€’ Contributing

About

A modern social network for gamers built with Astro, React, NestJS, and TypeScript.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages