Assignment-Software Engineer
Assignment-Software Engineer
Requirements:
User Authentication:
● Some form of user authentication should be present as part of the API design that
includes: login and session management
User Authorization:
● Implement authorization checks to ensure that users can only modify their own blog
posts.
● Define roles (e.g., Admin, Author) and assign appropriate permissions.
Documentation:
● Provide clear and comprehensive API documentation using tools like Swagger or
OpenAPI.
Error Handling:
● Document proper error handling for a few scenarios, and how they would be returned
with meaningful error messages.
Scalability:
● Design the API with scalability in mind. Consider factors like database indexing,
caching, and load balancing.
Submission:
Design Document:
● Provide a high-level design document outlining the architecture, data model, and key
components of your API.
Documentation:
● Include API documentation that details each endpoint, required headers,
request/response formats, and authentication procedures.
Readme File:
● Write a README file that includes information about dependencies, setup
instructions, and any other relevant details.
Evaluation Criteria:
Your assignment will be evaluated based on the following criteria:
● Security: Is the API secure, with proper authentication and authorization
mechanisms in place?
● Documentation: Is the API documentation clear and comprehensive?
● Scalability: Has the API been designed with scalability in mind?
Assignment: Hotel Booking Platform API
Objective:
Design a RESTful API for a Hotel Booking Platform that enables users to search for hotels,
make bookings, view booking details, and cancel bookings. The API should incorporate user
authentication, authorization, proper error handling, and scalability considerations.
Requirements:
User Authentication:
- Implement user authentication with login and session management.
- Use JWT tokens for secure authentication.
User Authorization:
- Ensure that users can only view and manage their own bookings.
- Introduce roles (e.g., Customer, Admin) with appropriate permissions.
Documentation:
- Provide clear and comprehensive API documentation using tools like Swagger or
OpenAPI.
- Include details on each endpoint, required headers, request/response formats, and
authentication procedures.
Error Handling:
- Document proper error handling for scenarios such as invalid requests, unauthorized
access, not found errors, and internal server errors.
- Return meaningful error messages to aid developers and users.
Scalability:
- Design the API with scalability in mind.
- Consider factors like database indexing, caching mechanisms, and load balancing.
Submission:
Design Document:
● Provide a high-level design document outlining the architecture, data model, and key
components of your API.
Documentation:
● Include API documentation that details each endpoint, required headers,
request/response formats, and authentication procedures.
Readme File:
● Write a README file that includes information about dependencies, setup
instructions, and any other relevant details.
Evaluation Criteria:
Your assignment will be evaluated based on the following criteria:
● Security: Is the API secure, with proper authentication and authorization
mechanisms in place?
● Documentation: Is the API documentation clear and comprehensive?
● Scalability: Has the API been designed with scalability in mind?
This assignment is designed to assess your ability to create a well-documented and secure
RESTful API for a Hotel Booking Platform, considering various aspects such as
authentication, authorization, error handling, and scalability.