Conduit Backend
A RealWorld (Conduit) backend implemented in TypeScript + Express + Prisma/PostgreSQL.
Features
- JWT authentication (register, login, current user, update user)
- User profiles (view, follow, unfollow)
- Articles (CRUD, list with filters, feed, favorite/unfavorite)
- Comments (list, add, delete)
- Tags
Setup
npm install
# configure DATABASE_URL and JWT_SECRET in .env
npx prisma migrate dev --name init
npm run dev
Scripts
| Script | Description |
|---|---|
npm run build | Compile TypeScript to dist/ |
npm start | Run the compiled server |
npm run dev | Run in watch mode |
npm test | Run the Jest test suite |
npm run prisma:migrate | Apply Prisma migrations |
API Endpoints
Auth
POST /api/users— registerPOST /api/users/login— log inGET /api/user— current userPUT /api/user— update current user
Profiles
GET /api/profiles/:usernamePOST /api/profiles/:username/followDELETE /api/profiles/:username/follow
Articles
GET /api/articles— list (filters: tag, author, favorited, limit, offset)GET /api/articles/feedGET /api/articles/:slugPOST /api/articlesPUT /api/articles/:slugDELETE /api/articles/:slugPOST /api/articles/:slug/favoriteDELETE /api/articles/:slug/favorite
Comments
GET /api/articles/:slug/commentsPOST /api/articles/:slug/commentsDELETE /api/articles/:slug/comments/:id
Tags
GET /api/tags