✏️

Pictionnary

Completed 2023 Client-Server (REST) with SPA Frontend

Pictionnary is a full-stack online Pictionary game. The NestJS backend exposes JWT-secured REST APIs for authentication, room management, words, comments, and history, with Swagger documentation and global validation. The React frontend provides login/register flows, room creation and joining, player listing, and room views. CORS is enabled for SPA integration, and DTO-driven validation secures inputs.

Game Development Full-Stack Development Web Development Software Engineering

Overview

Pictionnary is a full-stack online Pictionary game. The NestJS backend exposes JWT-secured REST APIs for authentication, room management, words, comments, and history, with Swagger documentation and global validation. The React frontend provides login/register flows, room creation and joining, player listing, and room views. CORS is enabled for SPA integration, and DTO-driven validation secures inputs.

Key Features

JWT-secured authentication with registration/login

pages.portfolio.projects.pictionnary.features.1

Word (picword) CRUD for game rounds

History storage and retrieval for scores

Comments module for game collaboration context

Swagger documentation with bearer auth

Global validation with DTOs and ValidationPipe

CORS-enabled REST API for SPA

React SPA with routes for login, register, create/join room, and room view

LocalStorage helpers for JWT/session data

Technical Highlights

Built NestJS REST API with JWT security, Swagger docs, and validation-first DTO design

Implemented room, word, history, comment, and user modules with MongoDB/Mongoose persistence

Created React SPA with auth, room creation/join flows, and player listing

Enabled CORS and bearer-authenticated Swagger for easy SPA integration and testing

Challenges and Solutions

JWT-Secured Routes

Configured global AuthGuard with passport-jwt and Swagger bearer auth to secure endpoints

Room Membership Management

Provided endpoints for creating/joining rooms, fetching players, and generating invite links

Validation and DTO Enforcement

Used class-validator DTOs with global ValidationPipe to whitelist and validate input

SPA Integration

Enabled CORS and structured endpoints for seamless React SPA consumption

Technologies

Backend

NestJS 10 TypeScript MongoDB Mongoose JWT Passport @nestjs/swagger Multer bcrypt

Frontend

React 18 (CRA) React Router 6 Tailwind config

Tooling

ESLint Prettier Jest Supertest

Project Information

Status
Completed
Year
2023
Architecture
Client-Server (REST) with SPA Frontend
Category
Game Development