A community platform where people share free learning resources (books, courses, tools, notes). Browse, upvote, comment, and discover the best resources.
- Frontend: Next.js (JavaScript, App Router) + Tailwind CSS
- Backend: Go (Chi router)
- Database: PostgreSQL (Docker)
- Auth: JWT (email + password)
- Node.js 18+
- Go 1.21+
- Docker & Docker Compose
docker-compose up -dcd backend
go mod download
go run cmd/server/main.goBackend runs on http://localhost:8080
cd frontend
npm install
npm run devFrontend runs on http://localhost:3000
POST /api/auth/signup- RegisterPOST /api/auth/login- LoginGET /api/auth/me- Current user
GET /api/resources- List (search, filter, paginate)GET /api/resources/:id- DetailPOST /api/resources- Submit (auth)PUT /api/resources/:id- Edit (auth)DELETE /api/resources/:id- Delete (auth)
POST /api/resources/:id/upvote- Toggle upvoteGET /api/resources/:id/comments- List commentsPOST /api/resources/:id/comments- Add commentGET /api/bookmarks- My bookmarksPOST /api/resources/:id/bookmark- Toggle bookmark
PORT=8080
DATABASE_URL=postgres://postgres:postgres@localhost:5432/openshelf?sslmode=disable
JWT_SECRET=your-secret-key-change-in-production
NEXT_PUBLIC_API_URL=http://localhost:8080/api