Express + TypeScript API for Boilerbuzz.
- Node.js 18+
- npm 9+
- PostgreSQL
npm installnpm run devServer base URL: http://localhost:3000
Swagger UI: http://localhost:3000/api-docs
npm run build
npm startAll routes are mounted under /api.
-
GET /apihealth message -
GET /api/posterlist posters -
GET /api/poster/:idget poster by id -
POST /api/postercreate poster -
PUT /api/poster/:idupdate poster -
DELETE /api/poster/:iddelete poster -
POST /api/posters/searchsearch posters by tag/date -
GET /api/clublist clubs -
GET /api/club/:idget club by id -
POST /api/clubcreate club -
PUT /api/club/:idupdate club -
DELETE /api/club/:iddelete club -
GET /api/userlist users -
GET /api/user/:idget user data -
POST /api/usercreate user -
POST /api/user/:idno-op settings update placeholder -
DELETE /api/user/:iddelete user data -
GET /api/user/settingslist user settings -
GET /api/user/settings/:idget user settings by user id -
POST /api/user/settingscreate user settings -
DELETE /api/user/settings/:iddelete user settings -
POST /api/userClub/createcreate club and assign admin -
POST /api/userClub/inviteinvite admin to club -
DELETE /api/userClub/removeremove admin from club -
POST /api/userPosterBookmarkscreate bookmark -
GET /api/userPosterBookmarks/:userIdlist bookmarks for user -
GET /api/userPosterBookmarks/:userId/:posterIdget specific bookmark -
DELETE /api/userPosterBookmarks/:userId/:posterIddelete bookmark
Schema scripts are under src/scripts/.
Recommended order for fresh setup:
create_user_table.sqlclub.sqluserpostpermissions.sqlposter.sqltags.sqlposter_tag.sqluser_settings.sqluser_club.sqluserposterbookmark.sqluserposterlike.sql