aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: 2ea7fd3b81fc8749133074351cc48c68fca40ff7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# PO connect-4

<div style="text-align: center;"><img src="./banner.png"/></div>

## Dit is de PO informatica met Python en SQL

## Dingen die er graag in willes:

- Werkend 4 op een rij spel
- Client-server verbinding met socket.io
- Accounts aanmaken
- Anonieme accounts / invite links
- Veilige wachtwoordauthenticatie
- Spelen tegen computer
- Rest API die dit allemaal doet inplaats van jank oplossing

## Misschien:

- ~Log in met google / apple / andere~
- Berichten
- Mensen kunnen volgen
- Meerdere game modes
- Rating net als op chess.com
- Verschillende thema's (minimalistisch of skeuomorf met realistische stuiter-animaties)

## Dingen die gebruikt worden:

- [Flask](https://flask.palletsprojects.com/) voor de http server en de REST api
- [ReactJS](https://reactjs.org/) om de website mee te maken
- [NextJS](https://nextjs.org/) om meerdere pagina's te hebben met reactjs
- [socket.io](https://socket.io/) voor de communicatie tussen de clients en de server tijdens een potje
- [SQLite](https://sqlite.org/index.html) voor de database

Een voorbeeld van de database is te vinden op [Google Docs](https://docs.google.com/spreadsheets/d/1mDN9IUqRIMjr_9RmLxKybjIgVuaUadalmPEFnG-XeJg/edit?usp=sharing) samen met de api endpoints, en een voorbeeld van de website is te vinden op [Figma](https://www.figma.com/file/rTciVQApAe6cwrH1Prl5Wn/4-op-een-rij?node-id=0%3A1)

## Hoe 'installeren'

0. `git clone https://github.com/lonkaars/po-4-op-een-rij`
1. Zorg dat je [python](https://python.org/downloads) hebt geïnstalleerd.
2. Zorg dat je [nodejs](https://nodejs.org/en/download) hebt geïnstalleerd.
3. Installeer typescript, react-scripts en yarn:
	```sh
	npm i -g typescript yarn react-scripts
	```
4. Maak een python virtual environment en installeer pip modules:
	```sh
	python -m venv venv
	
	# activeer virtual environment (zie volgende alinea)

	pip install -r requirements.txt
	```
5. Installeer node modules:
	```sh
	yarn
	```

## Hoe python virtual environment activeren

### Windows (cmd)

```
.\venv\Scripts\activate.bat
```

### Windows (powershell)

```
.\venv\Scripts\Activate.ps1
```

### Windows (git bash)

```
source venv/Scripts/activate
```

### Linux (bash/zsh/sh)

```
source venv/bin/activate
```

Als je het goed gedaan hebt krijg je een nieuwe prompt te zien met `(venv)` er voor.

## Hoe starten

Om dit project te starten moet je 3 terminals gebruiken die afzonderlijk de flask server en de react server starten:

```sh
# term 1

# activeer virtual environment

python3 api/main.py

# term 2

yarn dev

# term 3

sudo nginx -c $PWD/nginx.conf # dit werkt alleen op unix (ik moet nog ooit gaan testen op windows)
```

## Hoe API endpoints testen
```sh
# Als je alleen de flask server draait:
curl http://localhost:5000/<endpoint>

# Als nginx ook draait:
curl http://localhost:2080/api/<endpoint>
```