diff options
-rw-r--r-- | readme.md | 84 |
1 files changed, 53 insertions, 31 deletions
@@ -8,33 +8,26 @@ <img src="https://img.shields.io/static/v1?label=platform&message=linux"/> </p> -## This is a school project using Python and SQL - -Some of this project's code is in Dutch (commit messages, documents etc.), -along with the whole website. I'm planning on adding some form of localization -system, and I'll try to maintain this after the assignment deadline because I -think this is a pretty cool project. I'll also be fixing issues/merging pr's -after the deadline. ~I think the deadline is January 25th sometime in March? -though I'm not sure about this.~ The deadline is March 19th. - -## Things that we'd like to have working: - -- Working connect 4 game -- Client-server connection with socket.io -- Account creation -- Anonymous accounts / invite links -- Safe password authentication -- Play against the computer -- Follow people/add as friend -- Game rating like on chess.com -- Rest API that handles all of this instead of some janky solution - -## Maybe: - -- ~Log in with google / apple / other~ -- Messages -- Multiple game modes -- Different themes (minimalist or skeumorphic with realistic bouncing animation) +> Some of this project's code is in Dutch (commit messages, documents etc.), +along with the whole website. This was originally a school project, but I'm +going to keep maintaining this project during my exams and summer break + +## Planned features: + +- [x] working connect 4 game +- [x] client-server connection with socket.io +- [x] account creation +- [ ] anonymous accounts +- [x] invite links +- [x] safe password authentication +- [ ] play against the computer +- [x] follow people/add as friend +- [ ] game rating like on chess.com +- [x] rest api that handles all of this instead of some janky solution +- [ ] Messages +- [ ] Multiple game modes +- [ ] Themes +- [ ] Animations ## Used libraries and frameworks: @@ -45,13 +38,40 @@ though I'm not sure about this.~ The deadline is March 19th. - [SQLite](https://sqlite.org/index.html) for the database - [nginx](https://nginx.org/en/) for serving static files generated by nextjs, caching and reverse proxy -An example database can be found on [Google Docs](https://docs.google.com/spreadsheets/d/1mDN9IUqRIMjr_9RmLxKybjIgVuaUadalmPEFnG-XeJg/edit?usp=sharing) along with the API endpoints, and the website prototypes can be found on [Figma](https://www.figma.com/file/rTciVQApAe6cwrH1Prl5Wn/4-op-een-rij?node-id=0%3A1) +A design prototype of the website can be found on +[Figma](https://www.figma.com/file/rTciVQApAe6cwrH1Prl5Wn/4-op-een-rij?node-id=0%3A1). +An outdated version of the API documentation is still on Google Docs, but I'm +moving and updating it to be in api/readme.md.  -## How to set up +## setup -> I haven't figured out how to run this project on Windows, so please install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10) if you want to run this yourself on Windows. The distro you choose doesn't matter, though package names in ./configure may vary if your distro doesn't use the apt package manager. +To set up this project you'll need to install npm and pip dependencies, pull +all git submodules and compile voerbak and the sql extensions. + +> I haven't figured out how to run this project on Windows, so please install +> [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10) if you want +> to run this yourself on Windows. The distro you choose doesn't matter, though +> package names in ./configure may vary if your distro doesn't use the apt +> package manager. + +### automatic setup using `./configure` (debian/ubuntu) + +This script might also work on other distro's using the `apt` package manager. +To start the setup process you only need to run the following command: + +```sh +./configure +``` + +The script calls sudo and apt install so some password input/manual +confirmation is required, but most of the install should be automated. + +### manual setup (other distro's) + +If your disto doesn't use the `apt` package manager, you can still run this +project by following these steps: 0. `git clone https://github.com/lonkaars/po-4-op-een-rij` 1. Make sure you have [python](https://python.org/downloads) (with pip and venv) installed. @@ -91,7 +111,8 @@ An example database can be found on [Google Docs](https://docs.google.com/spread ## How to start -In order to start this project you'll need three terminal windows to start the flask server, react server, and nginx seperately: +In order to start this project you'll need three terminal windows to start the +flask server, react server, and nginx seperately: ```sh # term 1 @@ -105,6 +126,7 @@ yarn dev sudo nginx -c $PWD/nginx.conf # if nginx can't run as the user nobody, try running the following command and restart nginx: +# this command is also in ./configure sed "s/user nobody/user $(whoami)/" -i nginx.conf ``` |