A web app that helps students and small teams organize their projects and manage tasks in one place.
| Member | GitHub |
|---|---|
| Diego Artemio Garcia | @NomadicAlternative |
| Joshua Abinadi Cirilo | @joshuacirilo |
| Nelson Mandella Akpomah | @mandellasly1 |
| Taiye Gabriel Ade-Benson | add username |
Synchronous meeting: Wednesdays at 22:00 UTC.
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Language | TypeScript (strict mode) |
| Styling | Tailwind CSS |
| Database | PostgreSQL on Supabase |
| Data access | Prisma |
| Authentication | Auth.js v5 (credentials) |
| Linting and formatting | ESLint + Prettier |
| Deployment | Vercel |
The project uses pnpm.
git clone <repository-url>
cd taskflow
pnpm installCreate a .env file in the project root (it is ignored by Git):
DATABASE_URL="postgresql://postgres.<project-ref>:<url-encoded-password>@aws-0-us-east-2.pooler.supabase.com:5432/postgres"
AUTH_SECRET="<output of: npx auth secret>"
# Only needed to run `pnpm start` locally; dev mode and Vercel trust the host automatically.
AUTH_TRUST_HOST=trueUse the Supabase session pooler URL: the direct db.<project-ref>.supabase.co host is IPv6-only. Then apply the migrations and start the app:
pnpm exec prisma migrate dev
pnpm devOpen http://localhost:3000.
| Command | What it does |
|---|---|
pnpm dev |
Development server |
pnpm build |
Production build |
pnpm lint |
ESLint |
pnpm format |
Formats the code with Prettier |
pnpm format:check |
Checks formatting without changing files |
Graphify is an optional development tool. Its official Python package is graphifyy; it is separate from the app's npm dependencies.
Set up the project-local environment with uv in PowerShell:
uv venv .graphify-venv --python 3.12
uv pip install --python .graphify-venv/Scripts/python.exe graphifyy==0.9.71
.\.graphify-venv\Scripts\graphify.exe install --project --platform agentsBuild or refresh the code graph locally, without an API key:
.\.graphify-venv\Scripts\graphify.exe extract . --code-only --max-workers 2
.\.graphify-venv\Scripts\graphify.exe cluster-only . --no-label
.\.graphify-venv\Scripts\graphify.exe query "RootLayout"
Start-Process .\graphify-out\graph.htmlThe generated graph, report, Python environment, and local assistant skill are ignored by Git and Prettier. --code-only skips semantic analysis of documents and media. The skill is installed under .agents/skills/graphify/ for Codex; invoke it with $graphify in a new turn and use the project-local executable above. Terminal commands use graphify, without a leading slash.
main is protected. Nobody pushes to it directly.
- Branch off
mainusingfeature/<short-description>, for examplefeature/user-auth. - Commit your work on that branch.
- Open a pull request into
main. - At least one other team member must review and approve it.
- Merge only after the review.
Keep pull requests small and focused on one thing. A pull request that does five things is a pull request nobody reviews properly.
- Formatting is handled by Prettier. The rules live in
.prettierrcand are shared by the whole team, so nobody argues about style in a review. Runpnpm formatbefore committing. - Correctness is handled by ESLint.
eslint-config-prettieris applied last so the linter does not report formatting issues. - Commits follow Conventional Commits:
feat:,fix:,docs:,chore:,refactor:. - TypeScript runs in strict mode and
anyis not allowed. Types are explicit on component props.
taskflow/
├── app/ Routes, layouts and API route handlers
├── components/ Reusable UI components
├── lib/ Types, data access and shared helpers
└── public/ Static assets
The project specification lives in specs/. Read it before starting a feature — it is the source of truth for what we are building and what is out of scope.
Beyond the weekly meeting, keep the team posted asynchronously in our Microsoft Teams channel: what you finished, what you are working on next, and anything blocking you.