TaskFlow je distribuirani sustav za upravljanje zadacima, razvijen u Pythonu koristeći FastAPI, SQLAlchemy, Celery, PostgreSQL i Redis.
Aplikacija koristi višeslojnu arhitekturu (API, servisni i repozitorijski sloj) te je u potpunosti dockerizirana radi jednostavnog pokretanja i razvoja.
-
Kloniraj repozitorij:
git clone https://github.com/your-username/taskflow-distributed.git cd taskflow-distributed/src/docker -
Buildaj i pokreni sve servise:
docker-compose up --build
Ovo će pokrenuti:
- FastAPI API server (na portu 8000)
- Celery worker (za obradu zadataka u pozadini)
- PostgreSQL bazu podataka (na portu 5432)
- Redis (za Celery broker i rezultate, na portu 6379)
-
Pristupi API dokumentaciji:
- Otvori preglednik i idi na: http://localhost:8000/docs
- Ovdje možeš isprobati sve dostupne API endpointove.
POST /users/– Kreiraj korisnikaGET /users/– Dohvati sve korisnikeGET /users/{user_id}– Dohvati korisnika po ID-uPUT /users/{user_id}– Ažuriraj korisnikaDELETE /users/{user_id}– Obriši korisnika
POST /tasks/– Kreiraj zadatakGET /tasks/– Dohvati sve zadatkeGET /tasks/{task_id}– Dohvati zadatak po ID-uPUT /tasks/{task_id}– Ažuriraj zadatakDELETE /tasks/{task_id}– Obriši zadatak
Za zaustavljanje svih servisa pritisni CTRL+C u terminalu ili pokreni:
docker-compose down- Svi servisi i konfiguracije definirani su u
src/docker/docker-compose.yml. - Za promjene u kodu, ponovno buildaj i pokreni kontejnere s
docker-compose up --build. - Ako koristiš Windows, provjeri da su svi
.shskripte s Unix (LF) line ending-ima.
- Ako ne možeš pristupiti bazi ili API-ju, provjeri da su Docker i svi potrebni portovi (
8000,5432,6379) slobodni. - Ako dobiješ grešku vezanu uz
wait-for-postgres.sh, provjeri da je skripta kopirana u/appdirektorij u kontejneru i da ima ispravne (LF) line ending-e.