Track your progress, set reading goals and build your dream library.
Ceren's Book Nook is a modern book tracking application that helps users manage their reading journey, set goals and organize their personal library.
- Experience Ceren's Book Nook live on Vercel.
- Track books read and books to be read
- Set and monitor reading goals
- Create public and private book lists and share public lists
- View detailed reading statistics and progress
- Maintain a digital library accessible from anywhere
- Comprehensive reading statistics
- Monthly and yearly book data visualization
- Reading goal progress tracking
- Current reading activity monitor
- Reading streak and daily average metrics
- Add books to your personal library
- Mark books as read, currently reading or to be read
- Filter books by genres and categories
- Search functionality
- Create custom book lists
- Organize lists as public or private
- Share lists with other readers
- Color-coded tracking system based on page count
- Monthly reading calendar
- Goal setting and progress visualization
- Secure authentication via Clerk
- Profile management
- Reading preferences
Ceren's Book Nook is built using the latest technologies.
- Frontend: React, Next.js
- Styling: Tailwind CSS, shadcn/ui
- Authentication: Clerk
- Database: Prisma with Neon DB
- Charts & Visualization: Recharts
- Forms: React Hook Form with Zod validation
Sign up for a free PostgreSQL database through Vercel. Log into Vercel and click on "Storage" and create a new Postgres database. Then add the URL.
Sign up for an account at https://uploadthing.com/ and get the token, secret and app ID.
npm installNote: Some dependencies may have not yet been upadated to support React 19. If you get any errors about depencency compatability, run the following:
npm install --legacy-peer-depsCreate a .env file using the example and replace the values inside the square brackets with your own values.
NEXT_PUBLIC_APP_URL=[DEPLOYED_APP_URL]
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
SIGNING_SECRET=[YOUR_CLERK_WEBHOOK_SECRET]
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=[YOUR_CLERK_PUBLIC_KEY]
CLERK_SECRET_KEY=[YOUR_CLERK_SECRET_KEY]
DATABASE_URL=[YOUR_NEON_DB_URL]
UPLOADTHING_TOKEN=[YOUR_UPLOADTHING_TOKEN]
# Run in development mode
npm run dev
# Build for production
npm run build
# Run in production mode
npm start
# Check ESLint error
npm run lintOpen http://localhost:3000 with your browser.
To open Prisma Studio, run the following command:
npx prisma studioOpen http://localhost:5555 with your browser.
- Overwrite install command with the legacy peer flag if necessary:
npm install --legacy-peer-deps
- Deploy your application to Vercel.
This project is licensed under the MIT License. See the LICENSE file for more details.
