A fullstack project with React and Flask.
A minimal website app for randomly selecting a place to eat.
Tech Stack:
- Front-end: Typescript, React, Vite, Vitest, Testing Library, MSW.
- Back-end: Python, Flask, Postgresql, SQLAlchemy, Docker, Pytest.
Refer to the README files inside the client and server folders.
- Home page: contains a CTA to randomly select a restaurant and links to the AddNew and List pages.
- Results page: displays the randomly selected restaurant details.
- AddNew page: contains a form to add a new restaurant to the database.
- List page: displays a list of all restaurants in the catalogue.
- Details page: displays the details of a selected restaurant.
- [client] Create app using Vite + React + TS
- [client] Set up linter and formatter
- [client] Set up testing
- [client][Home] Create page UI (with animation)
- [client] Set up React Router + navigate to (empty) Results page
- [client][Results] Create page UI (with mock data)
- [client][Home] Add link to AddNew page + navigate to (empty) page
- [client][AddNew] Create page UI (with mock submit)
- [client][Home] Add link to List page + navigate to (empty) page
- [client][List] Create page UI (with mock data) + navigate to Details page
- [client][Details] Create restaurant details page UI (with mock data)
- [server] Create api with Flask
- [server] Set up linter and formatter
- [server] Set up testing
- [server] Create GET
/restaurants/randomendpoint to serve mocked data (imported from JSON) - [client][Home] Fetch restaurant data from server
- [server] Create POST
/restaurantsendpoint to create new restaurant entry - [client][AddNew] Add request to form page
- [server] Create GET
/restaurantsendpoint to serve mocked data (imported from JSON) - [client][List] Fetch restaurant data from server on restaurant list page
- [server] Create GET
/restaurants/<id>endpoint to serve mocked data (imported from JSON) - [client][Details] Fetch restaurant data from server on restaurant
- [server] Set up database on api
- [server] Create
Restauranttable + update controllers