Readify is a modern full-stack Bookstore application designed to provide a seamless experience for readers and administrators.
Built with Express.js, TypeScript, PostgreSQL on the backend and Next.js, TailwindCSS, ShadCN on the frontend.
- User authentication with JWT & refresh tokens
- Role-based access control (RBAC) – Admin, User
- CRUD operations for books, categories, and users
- Order & cart management
- Input validation with Zod
- PostgreSQL database
- Auto-generated API docs with Swagger
- Built with Next.js 15 & TypeScript
- Modern UI with TailwindCSS & ShadCN
- Authentication & protected routes
- Browse, search, and filter books
- Shopping cart & checkout system
- Admin dashboard for managing users, books, and orders
- Responsive, SEO-friendly design
Backend
- Node.js, Express.js, TypeScript
- PostgreSQL
- Zod for validation
- JWT for auth
- Swagger for API docs
Frontend
- Next.js 15, React, TypeScript
- TailwindCSS, ShadCN, Framer Motion
- Axios for API calls
- React Query / TanStack Query for data fetching
readify/
│── server/ # Backend (Express + TS + PostgreSQL + Drizzle)
│ ├── src/
│ └── ...
│
│── client/ # Frontend (Next.js + TailwindCSS + TS + ShadCN)
│ ├── app/
│ ├── components/
│ └── ...
│── LICENSE
│── README.md # Project documentation
git clone https://github.com/maruf-pfc/readify.git
cd readify
cd server
cp .env.example .env
bun install
bun run dev
- Visit Swagger API docs → http://localhost:5555/docs
cd ../client
cp .env.example .env
pnpm install
pnpm run dev
- Visit frontend → http://localhost:3000
- Home page (Upcoming)
- Book details (Upcoming)
- Admin dashboard (Upcoming)
- Hashed passwords with bcrypt
- JWT-based authentication
- Role-based access control
Pull requests are welcome! For major changes, open an issue first to discuss what you’d like to improve.
This project is licensed under the Apache License.