No Dice Games is a RESTful API built for a board game review aggregation platform. This backend service provides endpoints for managing reviews, comments, categories, and user interactions. The project was built using Test-Driven Development (TDD) practices, with comprehensive test coverage for all API endpoints and error handling.
This project was developed as part of the Northcoders Full-Stack Software Developer Bootcamp.
- View all reviews with filtering, sorting, and ordering capabilities
- Retrieve individual reviews by ID
- Filter, sort and order reviews via query parameters
- View, post and delete comments on reviews
- Upvote or downvote reviews
- View all users
- Browse reviews by category
- Node.js
- Express.js
- PostgreSQL
- Jest
- Supertest
The corresponding frontend application can be found here: No Dice Games Frontend
View the live frontend deployment
- Node.js (minimum version 6.0.0)
- PostgreSQL (minimum version 8.7.3)
- Clone this repository:
git clone https://github.com/Oliver1334/nodicegames-BE.git- Navigate to the project directory:
cd nodicegames-BE- Install dependencies:
npm install- Set up environment variables:
Create a .env.development file in the root directory:
PGDATABASE=nc_games
Create a .env.test file in the root directory:
PGDATABASE=nc_games_test
Ensure both files are added to .gitignore
- Set up the database:
npm run setup-dbs
npm run seed- Start the development server:
npm startThe server will run on localhost:9090
A summary of all available endpoints can be viewed at the /api endpoint.
When running locally, navigate to localhost:9090/api for a complete list of endpoints, request formats, and example responses.
This application has been fully tested using Jest and Supertest. To run the test suite:
npm test