A culinary health supervision and rating agency needs a catalog of restaurants to help them know all available restaurants in Rwanda. restaurants should have a name, the name of the owner(owner can be individual or a company), rating(number of stars), address or location (to simplify this you can just use districts and sectors only), list of dishes offered by the restaurant. Each dish should have a name, cooking time, a list of ingredients, price of the dish and different pictures of the dish.
- Create a web api reflecting the above scenario using technologies(programming language....) of your choice.
- Your Api should provide a way to list restaurants in a specified location (district or sector), restaurants owned by a given individual or company, restuarants of a given rating etc...Think of all the possible scenarios users or other systems would consume your API and the type of information they would need to access.
- It should also have features like Authentication and Authorization in a way that only authorized users can add or modify some areas of the api.
- Use Postman to document your Web API.
- Deploy your web API to the platform of your choice (Heroku, Azure, etc...)
- Submission will be done via this repository but you should also include a link to your postman collection and a link to the hosted webApi along with some default credentials for testing.
Note: Don't be limited to the features specified in instructions, feel free to add any other feature you think is necessary.
This project is made up three apps, where each app has its own url details, here initial urls that links to the urls in apps form more details:
- https://restosupervisionapi.azurewebsites.net/,,, links to Locations app [for all about: Province, District, and Sector]
- https://restosupervisionapi.azurewebsites.net/catalog/,,, links to restaur app [for all about: Owners and Restaurants]
- https://restosupervisionapi.azurewebsites.net/kitchen/,,, links to dishes app [for all about: Cuisines, Dishes, Ingredients, and DishImages]
- POST,LIST,RETRIEVE,PUT... For All ModelViewSets Of System
- All Permissions on System Is Assigned on Him through custom permission [IsAdminOrReadOnly]
- POST,LIST,RETRIEVE,PUT... For All ModelViewSets Of System excepts [Province, District & Sector], through custom permission [IsManagersOrReadOnly]
- These users are able to perform, [LIST, RETRIEVE] data on all ModelViewSet of System
- InAddition, they are some special permissions applied on [Owner] serializer, where only user is capable to access only the owner that has been created by him/her