Ett enkelt TODO-system byggt med Python, Flask och SQLite.
Projektet använder Flask app factory-pattern, pytest för unit- och integrationstester samt Postman/Newman och Playwright för API- och E2E-tester.
Projektet använder ESLint (JavaScript/TypeScript) och Ruff (Python) för kodkvalitet.
Projektet är förberett för CI (GitHub Actions).
- Skapa TODO-poster (title, description, status)
- Uppdatera status (
not-started,in-progress,done) - Ta bort TODO-poster
- SQLite som databas
- Lintning för projektets källkod och dokumentation
- Tester på flera nivåer (unit, API, E2E)
- CI-redo (GitHub Actions)
.
├── .github/
│ └── workflows/
│ └── tests.yml
├── app/
│ ├── __init__.py # Flask app (app factory)
│ ├── db.py # Databasfunktioner (SQLite)
│ ├── validation.py # Validering
│ ├── static/
│ │ └── style.css
│ ├── templates/
│ ├── base.html
│ └── index.html
├── tests/
│ ├── api/ # API/integrationstester (pytest)
│ │ └── test_app.py
│ ├── e2e/ # End-to-end tester (Playwright)
│ │ └── todo.spec.ts
│ ├── postman/ # Postman/Newman collections
│ │ ├── todo.collection.json
│ │ └── todo.env.json
│ └── unit/ # Unit-tester
│ └── test_validation.py
├── .dockerignore
├── .gitignore
├── Dockerfile
├── eslint.config.mjs
├── LICENSE
├── package-lock.json
├── package.json
├── playwright.config.ts
├── pytest.ini
└── README.md
├── requirements-dev.txt # Dev/test dependencies
├── requirements.txt # Runtime dependencies
├── todo.db # SQLite-databas (lokalt)
└── wsgi.py
# 1. Klona repot
git clone <repo-url>
cd todo
# 2. Skapa och aktivera virtuell miljö
python3 -m venv venv
source venv/bin/activate
#3. Installera beroenden
pip install -r requirements.txt
pip install -r requirements-dev.txt
npm install
# 4. Starta applikationen
python3 app.py
# Öppna i webbläsaren:
http://127.0.0.1:5001Projektet använder linting för att säkerställa konsekvent kodstil och upptäcka vanliga fel.
### Python
npm run lint:py
### JavaScript / TypeScript
npm run lint:js
### Linting på allt
npm run lint### Unit- och integrationstester (Python):
pytest
### API-tester (Postman / Newman):
npm run api-test
### End-to-End tester (Playwright):
npm run e2e
### Köra alla tester:
npm run test:allProjektet använder GitHub Actions för kontinuerlig integration.
Vid varje push och pull request körs hela testsviten automatiskt.
CI-flödet utför följande steg:
- Installerar Python-beroenden
- Installerar Node-beroenden (Newman, Playwright)
- Startar Flask-applikationen
- Lintning för att säkerställa konsekvent kodstil och upptäcka vanliga problem i projektets källkod och dokumentation
- Kör tester på flera nivåer:
- Unit- och integrationstester med
pytest - API-tester med Postman/Newman
- End-to-end-tester med Playwright
- Unit- och integrationstester med
pytest
npm run api-test
npm run e2eDetta projekt kan enkelt dockeriseras för lokal utveckling eller deployment.
Exempel (snabbstart):
docker build -t todo-app .
docker run -d -p 5001:5001 todo-app