This repository contains the code for a book review website developed as part of the PeopleGrove Full Stack Hiring Challenge.
- Displays a list of top-rated books.
- Utilizes server-side pagination for efficient data retrieval.
- Provides detailed information about a selected book.
- Allows users to add reviews for the book.
- React
- TypeScript
- Material-UI
- Express.js
- TypeScript
- PostgreSQL
- Sequelize (ORM)
- Navigate to the
backend
directory. - Install dependencies using
npm install
. - Create a
.env
file and copy.env.example
into it. - Configure the PostgreSQL database connection in the
.env
file. - In config folder create a
config.json
file and copyconfig.example.json
into it. This will be used to run the migrations usingsequelize-cli
. - Run the database migrations using
sequelize db:migrate:all
. - Run the seeders using
sequelize db:seed:run
- Start the backend server using
npm start
.
- Navigate to the
frontend
directory. - Install dependencies using
npm install
. - Create a
.env
file and copy.env.example
into it. - Configure the
VITE_BASE_API_URL
i.e backend api url in the.env
file. - Start the frontend development server using
npm run dev
.
- Ensure that both the backend and frontend servers are running simultaneously for the full functionality of the application.
- The application utilizes TypeScript for improved type safety and maintainability.
- Material-UI is used for a sleek and modern user interface.
- Sequelize is used as the ORM for interaction with the PostgreSQL database.