Backend developer Assignment
Backend developer Assignment
Objective
The goal of this assignment is to evaluate your knowledge in Laravel development, cloud
services (AWS, GCP, or Azure), CI/CD pipelines, and system architecture. You will be tasked
with developing a small web application and showcasing your skills in back-end development,
API creation, and system design.
Assignment Overview
You are tasked with building a basic Bookstore Management System. The system should
allow users to:
● Implement user authentication: Create a user management system with basic user
roles (Admin/User) where only Admins can add, update, or delete books.
● Create APIs: Provide RESTful APIs for all book-related operations.
● Handle validation and error handling: Ensure proper validation of inputs and return
appropriate error messages for invalid operations.
Assignment Requirements
1. Technology Stack:
○ Use Laravel (latest version) for back-end development.
○ Use MySQL or PostgreSQL as the database.
○ Implement cloud hosting on AWS/GCP/Azure (optional).
2. System Design:
○ Create a proper folder structure following best practices.
○ Ensure scalability and maintainability in your code.
○ Demonstrate your knowledge in designing a distributed system, if applicable.
3. APIs:
○ Develop RESTful APIs for all CRUD operations (Create, Read, Update, Delete)
on books.
○ Implement pagination for listing books.
4. Authentication & Authorization:
○ Use Laravel’s built-in authentication features.
○ Implement role-based access control (RBAC) where Admin users can perform all
operations while regular users can only view the book list.
5. Deployment:
○ Deploy the application on one of the cloud platforms (AWS/GCP/Azure) Or a
local server environment
○ If using a local server, ensure the database is hosted locally (e.g., MySQL or
PostgreSQL).
○ Provide clear instructions in the README for setting up and running the
application.
6. CI/CD Pipeline (Optional):
○ Set up a CI/CD pipeline using Jenkins, GitLab CI, or any other CI/CD tool.
○ Automate the deployment process to the cloud.
○ Ensure that tests run as part of the pipeline.
7. Testing:
○ Write unit tests for the core functionalities (CRUD operations).
○ Include API tests to verify the behavior of your RESTful endpoints.
8. Documentation:
○ Provide clear instructions on how to set up and run the application.
○ Include API documentation
Evaluation Criteria
Submission Guidelines
Deadline
Please submit your assignment within 7 days. If you require more time, let us know in advance.