Nástroj pro odevzdávání a review domácích úkolů z programování.
Production deployment: https://projekty.pyladies.cz/
Demo (reseted on every deploy): https://projekty-demo.messa.cz/
Next steps:
Dlouhodoběji:
Viz také issues.
Pokud máte dotaz nebo chcete spustit diskuzi nad některým todo, založte issue (pokud už takové neexistuje).
Uses React frontend based on Next.js and Python backend based on aiohttp.server.
browser --> nginx
- /* ------------> node.js frontend
- /api, /auth ---> Python aiohttp backend ---> MongoDB
Why React:
Why Next.js:
/lesson?courseId=abc
is served from pages/lesson.js
with props: { query: { courseId: 'abc' }}
Why Python backend:
Why aiohttp:
Why MongoDB:
python3-venv
docker run --rm -it -p 27017:27017 mongo:4
Ve 3 samostatných konzolích spusť:
$ make run-mongod
$ make run-backend
$ make run-frontend
Otevři http://localhost:3000/
Port | Služba |
---|---|
3000 | Node.js – frontend |
5000 | aiohttp – backend |
27017 | MongoDB |
Při změně kódu Python backendu je potřeba restartovat proces (tj. znovu spustit make run-backend
).
Pro automatizaci tohoto lze použít nějaký watchdog, např. watch_files.py.
Pro usnadnění vývoje na localhostu, je možné (v defaultu automaticky) zapnout tlačítka přihlášení různých rolí.
Usage:
# in the backend directory
$ export ALLOW_DEV_LOGIN=1
$ make run-backend
pyladies-courseware
├── Dockerfile
├── Makefile
├── backend
│ ├── Makefile
│ ├── cw_backend
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ ├── configuration.py
│ │ ├── courses.py
│ │ ├── main.py
│ │ ├── model
│ │ ├── util
│ │ └── views
│ ├── requirements-tests.txt
│ ├── requirements.txt
│ ├── setup.py
│ └── tests
│ ├── conftest.py
│ ├── data
│ ├── model
│ │ ├── test_users.py
│ │ └── ...
│ ├── ...
├── data - course, session and task data
├── frontend
│ ├── components
│ │ ├── ALink.js
│ │ ├── CodeEditor.js
│ │ ├── Header.js
│ │ ├── HomeworkComments.js
│ │ ├── ...
│ │ ├── admin
│ │ └── forms
│ ├── package-lock.json
│ ├── package.json
│ ├── pages
│ │ ├── admin
│ │ │ └── users.js
│ │ ├── course.js
│ │ ├── index.js
│ │ ├── lesson.js
│ │ ├── login.js
│ │ └── profile.js
│ ├── static
│ └── util
└── resources - images for README etc.
└── local_dev_login.png
Nějaký pokus o přepsání domácích úkolů proběhl zde: https://github.com/pyvec/naucse.python.cz/pull/153