Flask-based app where users vote who’s “hotter” between two images, using Elo ratings and a tournament bracket. The original version was coded by Zuck in 2003. This is the open-source version with modern design and additional functions, for example, table.
- Voting between random pairs of images (players)
- Elo rating updates after each vote
- SQLite database for storing players, votes, and logs
- Auto-initializes players from the
static/playerimagesfolder - Tournament bracket with stages (Round of 16, Quarterfinals, Semis, Final)
- Responsive UI (not perfect on mobile)
- Clone the repository:
git clone https://github.com/RomanTCHR/facemash-clone.git
cd facemash-clone- Install dependencies:
pip install flask-
Make sure you have a
static/playerimagesfolder with.webpimages. -
Run the server:
python main.py- On first run, it creates
players,users, andlogstables infacemash.db - Loads images from
static/playerimages, each becomes a player with an initial Elo rating of 400 - Homepage randomly picks two players to vote on
- After voting, Elo ratings update and a log is saved
├── app.py
├── facemash.db
├── bracket_data.py
├── static/
│ ├── playerimages/
│ ├── uploads/ cooming soon
│ ├── css/
│ └── images/
├── templates/
│ ├── layout.html
│ ├── index.html
│ └── table.html
- Python 3.x
- Flask
- SQLite3
- Jinja2 (included with Flask)
- Mobile upload isn't perfect — contributions welcome!
- Basic design focused on core functionality