A full-stack social platform for readers to discover new books, organize their virtual bookshelves, and share their literary journey.
Project Status: In Development ๐ง
Colophon is a social network dedicated to book lovers. The platform allows users to create virtual bookshelves to organize their readings (read, currently reading, and want to read), write reviews, give ratings, and share their progress with friends.
This repository contains the code for the back-end API, built with Node.js, Express, Prisma, and TypeScript. It is responsible for all business logic, database interactions, and user authentication.
- Node.js
- Express.js
- TypeScript
- Prisma (ORM for MongoDB)
- MongoDB
- JWT (JSON Web Tokens for Authentication)
- Bcrypt.js (for Password Hashing)
- Jest & Supertest (for API Testing)
Follow these steps to get a local copy up and running.
- Clone the repository:
git clone [https://github.com/Olliver-0/colophon-api.git](https://github.com/Olliver-0/colophon-api.git)
- Navigate to the project directory:
cd colophon-api - Install NPM packages:
npm install
- Set up Environment Variables:
- Create a
.envfile in the root of the project by copying the.env.examplefile. - Add the required environment variables:
DATABASE_URL=PASTE_YOUR_MONGODB_CONNECTION_STRING_HERE JWT_SECRET=PASTE_A_GENERATED_SECURE_RANDOM_STRING_HERE
- Create a
- Apply the database schema:
npx prisma db push
- Start the development server:
bash npm run devThe API will be running onhttp://localhost:3000(or the port you configure).
- User Authentication (JWT-based login and registration).
- API endpoint for searching books via the Google Books API.
- CRUD endpoints for managing user bookshelves ('Read', 'Reading', 'Want to Read').
- Endpoints to fetch book details and manage ratings/reviews.
- Endpoints to support a social activity feed.
- Endpoints for managing user profiles and reading statistics.
- Implement rate limiting and enhanced security.
(Link to the deployed API on Render - not available yet)
Natรฃ Gabriel de Oliveira - nata.gabriel.de.oliveira@gmail.com
Project Link: https://github.com/Olliver-0/colophon-api