A book tracker web app to help you organize your readings, which you can access here: https://lit-quest.fly.dev/
- Search for books by title and/or author.
- User registration and authentication.
- Add books to personal library.
- Track books as “To Read”, “Currently Reading”, “Did Not Finish”, and “Read”.
- Rate and review books.
- Display users' reading data in charts.
I’ve been using Goodreads for years and it certainly does the job, but I find its UI clunky at times. Namely because of the constant full-page reloads. That’s why I decided to create my own version that would have a snappier, more SPA-like feel.
- The Next.js documentation
- The Google Books API guide
- Lucia, an absolutely stellar authentication library.
- shadcn/ui, for providing many of the essential UI components.
- This GitHub repository, for the design inspiration.
- Fly.io, for making it very easy to dockerize and deploy this application.
- Josh Tried Coding and Web Dev Simplified, two extremely helpful YouTube creators on anything related to the TypeScript and React/Node ecosystems.
These are the instructions if you want to try out this project in your local development environment.
- Node.js and npm
- Local PostgreSQL database (Docker isn't the only option here, but it's certainly one of the simplest.)
-
Clone the repository
git clone https://github.com/Rodri-97/book-tracker.git cd book-tracker
-
Install dependencies
npm install
-
Remove unneeded files and dependencies (optional)
These files and dependencies are for deployment purposes only. So they're not needed if you just want to run the project locally or deploy it in a different manner.rm -rf Dockerfile .dockerignore fly.toml npm uninstall @flydotio/dockerfile
-
Set up environment variables
Create a.env
file in the root directory and add this environment variable:DATABASE_URL=[your_database_url]
-
Apply database migrations
npx prisma migrate dev
-
Start the development server
npm run dev