Wikipedia Game Solver is a tool that helps you find the shortest path between two Wikipedia pages, using only internal links, basically solving the Wikipedia Game for you.
Go to file
2024-08-30 18:30:16 +00:00
.github/workflows chore: try Adonis Tuyau 2024-08-16 01:50:11 +01:00
.vscode chore(api): improve DX (Developer Experience) 2024-08-19 22:11:33 +01:00
apps chore(release): 1.0.0-staging.4 [skip ci] 2024-08-30 18:30:16 +00:00
data feat(api): work in progress GET /wikipedia/shortest-paths?fromPageId=id&toPageId=id 2024-08-23 23:21:42 +02:00
packages chore(release): 1.0.0-staging.4 [skip ci] 2024-08-30 18:30:16 +00:00
patches chore(api): improve DX (Developer Experience) 2024-08-19 22:11:33 +01:00
.dockerignore chore: initial commit 2024-07-24 12:35:33 +02:00
.editorconfig chore: initial commit 2024-07-24 12:35:33 +02:00
.env.example feat(api): implement GET /wikipedia/pages?title=search_title 2024-08-12 00:32:43 +01:00
.gitattributes chore: initial commit 2024-07-24 12:35:33 +02:00
.gitignore chore: try Adonis Tuyau 2024-08-16 01:50:11 +01:00
.npmrc chore: initial commit 2024-07-24 12:35:33 +02:00
.prettierrc.json chore: initial commit 2024-07-24 12:35:33 +02:00
.releaserc.json chore: initial commit 2024-07-24 12:35:33 +02:00
compose.dev.yaml feat(api): create Lucid models and migrations for Wikipedia database dump + usage of PostgreSQL instead of MariaDB 2024-08-11 09:49:23 +01:00
compose.yaml docs: database migrations 2024-08-25 01:50:29 +02:00
LICENSE chore: initial commit 2024-07-24 12:35:33 +02:00
package.json chore(release): 1.0.0-staging.4 [skip ci] 2024-08-30 18:30:16 +00:00
pnpm-lock.yaml build(deps): update latest 2024-08-30 20:06:53 +02:00
pnpm-workspace.yaml build(deps): update latest 2024-08-30 20:06:53 +02:00
README.md docs: rework wording status of the project 2024-08-30 20:18:56 +02:00
TODO.md docs: add notes about status of the project (abandoned for the moment) 2024-08-30 20:14:50 +02:00
turbo.json docs: database migrations 2024-08-25 01:50:29 +02:00

Wikipedia Game Solver

Important

The project is abandoned and not maintained anymore.

It was a proof of concept to deal with large amounts of data in databases, and have some fun dealing with Wikipedia data. It was also a way to learn and experiment with a clean monorepo architecture, with Turborepo, and TypeScript as the main language. The project setup can be reused as a template/boilerplate for future projects.

About

The Wikipedia Game involves players competing to navigate from one Wikipedia page to another using only internal links.

Wikipedia Game Solver is a tool that helps you find the shortest path between two Wikipedia pages, using only internal links, basically solving the Wikipedia Game for you.

Available online: https://wikipedia-game-solver.theoludwig.fr => Offline as the project is abandoned.

Getting Started

Prerequisites

Installation

# Go to the project root
cd wikipedia-game-solver

# Configure environment variables
cp .env.example .env
cp apps/website/.env.example apps/website/.env
cp apps/api/.env.example apps/api/.env

# Install dependencies
pnpm install --frozen-lockfile

# Install Playwright browser binaries and their dependencies (tests)
pnpm exec playwright install --with-deps

Development

# Start the development servers
node --run dev

# Start the development Docker services (e.g: Database)
docker compose --file compose.dev.yaml up

# Database migrations
node --run database:migrate

# Lint
node --run lint:editorconfig
node --run lint:prettier
node --run lint:eslint
node --run lint:typescript

# Tests
node --run test

# Build
node --run build

# To execute a command in a specific package (e.g: apps/api)
cd apps/api
node --run ace -- list

Production environment with Docker

# Setup and run all the services for you
docker compose up --build

# To execute database migrations
docker compose exec wikipedia-game-solver-api sh
node --run database:migrate

Services started

License

MIT