---
# System prepended metadata

title: Project Proposal

---

# Project Proposal - Project Group 1

[toc]

## :pencil: Project Info  

:::info
- **Project Name** - Whokipedia
- **Description** - Our web app is a game called Whokipedia. It takes its root in the famous game "Guess Who ?", and is inspired from the wikipedia interface. The user starts with a wikipedia-like page with some basic information and tries to guess a celebrity, for instance a first hint could be the birth year.  If the user fails to guess correctly at first, a second hint is given (sentence of the wikipedia description, occupation or job, nationality, blurred photo, ...) and revealed as a part of the wikipedia interface. Each time the user makes a guess, they get a new hint, until they find out who the celebrity is or until all hints are used. The less hints were needed, the more points the player scores ! There are two modes, daily challenges and training. In training, you play for yourself, and can play as many times as you want. The daily challenges take their inspiration from wordle. The goal stays the same but there is only one celebrity to guess each day. For the daily challenges, a leaderboard is created. If they want their score to be displayed on the leaderboard, the player should login, however you can also play as a visitor but that means that your performance will not be saved. Finally, once the game is done and the celebrity revealed, a link to the wikipedia page of the celebrity will appear, inviting the player to learn more about the celebrity of the day if their curiosity has been spiked. A logged in user can also browse through their old games, points, and celebrities found. 
- **Contributors**
    - 👤 Arrivé Maël (157942)
    - 👤 Catheland Martin (157118)
    - 👤 Chevalley Roxanne (157123)
    - 👤 Perbet Jean (157113)
:::


##  Frameworks that will be used
We plan to use **TypeScript** for development, **Vue.JS** as the UI framework, **Vite** development environment and **Firebase** for realtime database and authentication management.

## API

We will use the huge database of Wikipedia. The formal API we will use is the **MediaWiki ACTION API**, accessible [here](https://www.mediawiki.org/wiki/API:Main_Page). The endpoint is accessible at `https://en.wikipedia.org/w/api.php?`. We will mainly use the `action=query` parameter. We will fetch the whole page, and then parse the content we need into it. 

## Data 

App will have a local specific list of a thousand names, formatted to their corresponding Wikipedia page title (spaces replaced with `_`). It will use it to choose a random name, and then query the API to fetch remote data, which corresponds to the actual Wikipedia page we will use for next round and from which we will parse the required data. 

## Hint examples
- Date of birth
- Age / Date of death
- Nationality
- Occupation / Job
- Paragraph of the original page
- Sentence of the short description from Wikipedia 
- Blurred picture
- Picture
- Initials

## Quick prototype
![IMG_0210](https://hackmd.io/_uploads/BkgQF5i3p.jpg)
![IMG_0211](https://hackmd.io/_uploads/SkeXKqjhT.jpg)
![IMG_0212](https://hackmd.io/_uploads/Bye7Fqs2p.jpg)
