Find Me a Table
LIVE DEMO: https://find-me-a-table.vercel.app/
Table reservation project, following the model of Open Table.
100% functional, conected to a PostgreSQL DB. Not responsive yet. Fake data
Available action: login, signup, logout, search (by city), check reservation times and make a reservation.
(The only restaurant that has tables for reservation is the 'Vivaan - fine Indian'.)
LIVE DEMO: https://find-me-a-table.vercel.app/
Tech & 3rd party used in the project:
- React
- NextJS
- Prisma
- PostgreSQL
- Axios
- TypeScript
- Tailwind
- Material UI
- React Simples Image Viewer
- validator.js
- node.bcrypt.js
- jose
- jsonwebtoken
Services & tools used in the project
How to run the project:
- Clone the repository
- Edit the .env file to add your Postgresql server, your JWT token and your root path. Your file should look like this:
DATABASE_URL="postgres://somename:54nWBJEMcbDT@ep-willowing-goat-797154.eu-central-1.aws.neon.tech/dbname"
JWT_SECRET="12w@krj31!853672¤%¤#Y&/ETRFwq58325g2w@2#¤!"
REACT_APP_ROOT_PATH="https://appadress.vercel.app"
(If you want to use another DB structrue like MySQL, for example, you will have to adapt the Prisma Schema file.)
Start Prisma to garantee that the project won't break for not recognizing something. In a terminal, run:
npx prisma generate
Push your schema to the DB server. Run:
npx primsa db push
Now, seed the DB. You should see a success message. Access: Then, run:
https://yourprojecturl.com/api/seed
Now, the normal flow. Install the 'node_modules':
npm install
Last, just run the project:
npm run dev
To-do:
- Make it responsible;
- UI improvements;
- Implemente voting and comments;
- Restrict access to reservation form for logged users only;
LIVE DEMO: https://find-me-a-table.vercel.app/