This is a restaurant management application that allows users to perform CRUD (Create, Read, Update, Delete) operations on restaurant details. Users can view a list of restaurants, create new restaurants, view detailed information about a selected restaurant, update restaurant information, and delete restaurants. The application is built using Express.js as the backend framework, MongoDB as the database, and React for the frontend.
-
Restaurant Listing: The application displays a list of restaurants with their names and basic details such as cuisine type and location.
-
Restaurant Creation: Users can add new restaurants by providing details such as name, cuisine type, location, and an image of the restaurant.
-
Restaurant Details: The application shows detailed information about a selected restaurant, including its name, cuisine type, location, and the uploaded image.
-
Restaurant Update: Users have the option to edit the details of a restaurant, including its name, cuisine type, location, and the uploaded image.
-
Restaurant Deletion: Users can delete a restaurant from the system.
To set up and run the application, you will need the following:
- Node.js installed on your machine.
- Express.js as the backend framework.
- MongoDB as the database.
- React for the frontend.
- Image storage on the file system.
-
Clone the repository from GitHub: [repository-url]
-
Change to the backend directory:
cd server
-
Install the dependencies:
npm install
-
Configure the MongoDB connection:
- Create a
.env
file in thebackend
directory. - Add the following line to the
.env
file:ReplaceMONGO_DB_URI=your-mongodb-uri
your-mongodb-uri
with the connection string for your MongoDB database.
- Create a
-
Start the backend server:
npm run dev
The server will start running on
http://localhost:4000
.
-
Change to the client directory:
cd client
-
Install the dependencies:
npm install
-
Start the frontend development server:
npm run dev
The frontend server will start running on
http://localhost:5173
, and the application will be accessible in your web browser.
There are no additional dependencies required for this project beyond what is mentioned in the requirements section.
- I added more restaurant features than initially specified
- I added user authentication to enable only our platform users to add restaurants
Thank you for considering this project for the Sprint Uganda take-home challenge. If you have any questions or need need more information, please don't hesitate to reach out. Good luck with the screening, and I hope you find me the right candidate for the software development role.