A project and task management REST API built with FastAPI and SQLite.
- Health check endpoint
- Database with async SQLAlchemy and Alembic migrations
- CI pipeline with GitHub Actions
- User management (CRUD)
- Project management with soft deletes
- Task management with status transitions and assignment
- Pagination, due dates, and project statistics
Prerequisites: Python 3.10+, Git
-
Clone the repo
git clone <repo-url> cd projectflow-api
-
Create virtual environment
python3 -m venv .venv source .venv/bin/activate -
Install dependencies
pip install -r requirements.txt pip install -r requirements-dev.txt
-
Configure environment
cp .env.example .env
-
Run migrations and start server
alembic upgrade head uvicorn app.main:app --reload
Visit http://localhost:8000/docs for the API explorer.
pytest tests/ -v --cov=appInteractive docs available at /docs when the server is running.
See CLAUDE.md for full architecture documentation and the reasoning behind every decision.
External contributors (including course students) work fork-and-PR style:
- Fork this repo to your own GitHub account
- Clone your fork and create a feature branch
- Commit and push to your fork
- Open a pull request against
feature-agent/projectflow-api:main
Direct pushes to main are blocked. All changes land via reviewed PRs.