Skip to content

A full-stack game made using TypeScript, MongoDB, Express, React and NodeJS. It features WCAG Level A accessibility, responsive design using vanilla CSS and Material UI, a web scraper using Puppeteer, an authenticated RESTful API and full-stack testing with Jest.

Notifications You must be signed in to change notification settings

JamesGJ5/letterboxd-guessing-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

NOTE: currently updating unit tests to accommodate significant changes.

Play at https://letterboxd-guessing-game.up.railway.app/

Game in each round of which the player must guess which of two films is more highly rated on the review site letterboxd.com.

The Letterboxd API is not publicly accessible (see letterboxd.com/api-beta/), so a web scraper scrapes Letterboxd pages for film data and stores them in a database. The scraper is written in TypeScript and can be found at https://github.com/JamesGJ5/letterboxd-list-scraper. The backend is set up to regularly update the database but the updater isn't deployed yet for cost reasons. The backend also contains an API which is currently used to serve film data to the frontend web game.

Tools:

  • Frontend:

    • Written in TypeScript within React and NextJS
    • WCAG Level A accessibility
    • Responsive design using Vanilla CSS and Material UI
    • Tested using the React Testing Library in Jest
    • Has a Dockerfile written for manual configuration and specified for deployment to Railway
  • Backend:

    • Written in TypeScript withing NodeJS and Express
    • Accessible using a REST API with authentication
    • Uses a MongoDB database
    • Tested using MongoDB In-Memory Server and Supertest in Jest
    • Uses web scraper to automatically update the database daily (see database/database-updater/populate-database.js)
  • Web scraper:

    • Written in TypeScript and utilising Puppeteer

About

A full-stack game made using TypeScript, MongoDB, Express, React and NodeJS. It features WCAG Level A accessibility, responsive design using vanilla CSS and Material UI, a web scraper using Puppeteer, an authenticated RESTful API and full-stack testing with Jest.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published