Skip to content

Releases: DotNetBackendTraining/restaurant-reservation-system

Api Release - All Endpoints Implemented

Choose a tag to compare

@izzat5233 izzat5233 released this 05 Jul 22:54

Summary

  • New ASP.NET Core Web API project named RestaurantReservation.API.
  • API controllers for each entity and CRUD operations.

Full Changelog: v1.0.0...v2.0.0

Endpoints

  • Includes CRUD and other specific endpoints for reservations.
  • Endpoints for additional methods, including those related to reservations.
    • GET /api/employees/managers - List all managers.
    • GET /api/reservations/customer/{customerId} - Retrieve reservations by customer ID.
    • GET /api/reservations/{reservationId}/orders - List orders and menu items for a reservation.
    • GET /api/reservations/{reservationId}/menu-items - List ordered menu items for a reservation.
    • GET /api/employees/{employeeId}/average-order-amount - Calculate average order amount for an employee.

Authorization

  • Secure the APIs using JWT authorization mechanism.
  • Implement input validation and user-friendly error messages using Fluent Validations.

API Documentation with Swagger

  • Integrate Swagger to auto-generate API documentation.

Testing

  • Comprehensive Postman test suite to automatically test all the API endpoints.
  • Include tests for successful operations and error handling.
  • Share the Postman collection file.

Headless Release - Requirements Completed

Choose a tag to compare

@izzat5233 izzat5233 released this 01 Jun 20:47

Summary

  • This is mostly a Backend-only Release with:

    1. All requirements completed
    2. Several functional tests.
  • Full Changelog: v0.7.0...v1.0.0

Requirements

  1. Create a DB named RestaurantReservationCore (using SSMS).
  2. Create a console application project named RestaurantReservation.
  3. Create a library project named RestaurantReservation.Db and reference it from RestaurantReservation
    project.
  4. Create RestaurantReservationDbContext and add it to RestaurantReservation.Db.
  5. Create the data models for the above tables with all necessary keys, relationships, constraints, and navigations.
    These models should exist in RestaurantReservation.Db
  6. Write migrations to create the previous tables. Migrations should exist in RestaurantReservation.Db.
  7. Seed the tables with at least 5 records in each.
  8. In the RestaurantReservation console application, demonstrate the functionality of all the methods you will
    create by calling them with sample data for testing purposes.
  9. Write Create/Update/Delete methods for each entity.
  10. Write methods to:
    1. ListManagers(): This method retrieves all employees who hold the position of "Manager."
    2. GetReservationsByCustomer(CustomerId): This method takes a customer identifier as a parameter and returns a
      list of reservations made by that particular customer.
    3. ListOrdersAndMenuItems(ReservationId): This method takes a reservation identifier as a parameter and lists
      the orders placed on that specific reservation along with the associated menu items.
    4. ListOrderedMenuItems(ReservationId): This method takes a reservation identifier as a parameter and finds
      the menu items ordered in that specific reservation.
    5. CalculateAverageOrderAmount(EmployeeId): This method takes an employee identifier as a parameter and
      calculates the average order amount for that specific employee.
  11. Views:
    1. Use EF Core to query a database view that lists all the reservations with their associated customer and
      restaurant information.
    2. Generate a query that retrieves employees with their respective restaurant details from a database view.
  12. Database Functions:
    1. Create a database function to Calculate the total revenue generated by a specific restaurant using Entity
      Framework Core migrations.
    2. Implement the function call in your RestaurantReservation.Db project, making it accessible from your
      application.
  13. Stored Procedures:
    1. Design a stored procedure for
      Finding all customers who have made reservations with a party size greater than a certain value using Entity
      Framework Core migrations.
    2. Develop a method in your RestaurantReservation.Db project to execute the stored procedure.
  14. Create a repository class for each entity and call it: {EntityName}Repository.cs, and move related methods
    from the previous requirements to the right repository. These repositories should exist in Repositories
    folder RestaurantReservation.Db