Book Reading Tracker
A Next.js application designed to help users track and manage their book reading progress, utilizing a tech stack that includes Next.js, Typescript, NeonDB, Prisma, Auth V5, Resend, Zod, React Hook Form, and Shadcn.

Overview
The Book Reading Tracker is a web application designed to help users track and manage their book reading progress. The application is built using the latest technologies including Next.js 14, NeonDB, Prisma, and Auth V5 for authentication.
Technologies Used
- Next.js: For server-side rendering and static site generation.
- NeonDB: For scalable and flexible data storage.
- Prisma: As an ORM for managing database interactions.
- Auth V5: For secure user authentication.
- Resend: To handle email notifications.
- React Hook Form: For managing form state and validation.
- Zod Validation: For schema validation.
- Typescript: To ensure type safety and reduce runtime errors.
- Shadcn Tailwind UI Library: For building a modern, responsive UI.
Features
- User Authentication: Secure user authentication using Auth V5, supporting various providers including Google, GitHub, and email/password.
- Book Tracking: Users can track their book reading progress, providing details such as the book title, author, and reading status.
- Book Management: Track the status of books, add new books, and update their progress.
- Dashboard: A dashboard that provides an overview of the current status of all books, including read, in-progress, and to-be-read books.
- User Roles: Different user roles (admin, user) with varying levels of access and permissions.
- Search and Filter: Advanced search and filtering options to quickly find specific books based on various criteria.
- Notifications: Email notifications to keep users informed about updates to their book reading progress.
Project Structure
Copy code
├── components
│ ├── Auth
│ ├── Book
│ ├── Dashboard
│ └── Layout
├── pages
│ ├── api
│ │ ├── auth
│ │ └── books
│ ├── auth
│ ├── dashboard
│ └── index.js
├── prisma
│ ├── migrations
│ └── schema.prisma
├── public
├── styles
├── utils
├── .env
├── .gitignore
├── next.config.js
├── package.json
└── README.md
Common Issues and Solutions
- Authentication Configuration: Setting up Auth V5 with multiple providers can be complex. Ensure all necessary environment variables are correctly configured and providers are properly set up in next.config.js.
- Database Integration: Configuring NeonDB with Prisma may require careful schema design and migration handling. Ensure Prisma is correctly configured and migrations are applied to avoid issues with data integrity.
- Email Notifications: Configuring Resend for email notifications requires correct setup of API keys and email templates. Verify that emails are correctly triggered and received.
- Form Handling: Integrating React Hook Form with Zod Validation might involve managing complex validation schemas. Ensure forms are validated correctly and handle form submission errors gracefully.
Who This Project Is For
The Book Reading Tracker is ideal for book lovers seeking an efficient tool to manage and track their book reading progress. It is particularly useful for:
- Book Clubs: To manage and track book reading progress, and collaborate effectively.
- Book Reviewers: To track and manage book reviews, and provide recommendations.
- Avid Readers: To track and manage their book reading progress, and discover new books.
Contributing
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project aims to simplify the book tracking process and enhance user experience. By leveraging the power of Next.js, NeonDB, Prisma, and Auth V5, it provides a robust and scalable solution for managing book reading progress efficiently.