Skip to content

kenneth-loto/taskforge-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task & Project Management API

A backend-only REST API for managing projects, tasks, and comments. Built with NestJS — no frontend included; consume it via Swagger/Postman or your own client.

Domain model

User
 └── owns many Projects
      └── has many Tasks
           ├── assigned to a User
           └── has many Comments
                └── written by a User
  • Project — name, description, owned by a User
  • Task — title, description, status (TODO | PENDING | DONE), priority (low | medium | high), belongs to a Project, optionally assigned to a User
  • Comment — content, belongs to a Task, written by a User

Tech stack

  • NestJS — Node.js framework, Express adapter
  • Prisma — ORM
  • PostgreSQL — database
  • Better Auth — authentication (email + password, session-based)
  • Arcjet — rate limiting / bot protection / security
  • Biome — linting and formatting
  • Husky + commitlint — git hooks, conventional commit enforcement

Getting started

Prerequisites

  • Bun installed
  • A running PostgreSQL instance

Setup

bun install
cp .env.example .env   # fill in DATABASE_URL and auth secret
bunx prisma migrate dev
bun run start:dev

The API will be available at http://localhost:3000.

Scripts

Command Description
bun run start:dev Start in watch mode
bun run build Compile to dist/
bun run start:prod Run the compiled build
bun run lint Check lint/format issues (Biome)
bun run lint:fix Auto-fix lint/format issues
bun run test Run unit tests
bun run test:e2e Run end-to-end tests
bun run typecheck Type-check without emitting

Deployment

Full steps in DEPLOYMENT.md

Push to main → GitHub Actions builds the Docker image, pushes to GHCR, then triggers Render to pull and deploy.

Live Demo

Note: Hosted on Render's free tier — the service sleeps after 15 minutes of inactivity. If the first request hangs, it's waking up (~30 seconds). Just wait and retry.

API documentation

Swagger UI is available at /docs once the server is running.

License

MIT — see LICENSE.

About

NestJS REST API for project & task management with role-based access control, session auth, rate limiting, and bot protection.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors