0% found this document useful (0 votes)
31 views

Backend developer Assignment

Uploaded by

jayomaer
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Backend developer Assignment

Uploaded by

jayomaer
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

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:

1. List Books: Display a list of available books.


2. Add Books: Add a new book to the system.
3. Update Book Details: Edit the details of existing books.
4. Delete Books: Remove books from the system.
5. Search Books: Allow searching books by title, author, or ISBN.

Additionally, you are required 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

● Code Quality: Clean, readable, and well-structured code.


● System Design: Proper architecture and design for scalability.
● API Design: RESTful APIs that follow best practices.
● Security: Correct implementation of authentication, authorization, and input validation.
● Testing: Unit and API tests.
● Cloud Knowledge: Ability to deploy to and manage resources in a cloud environment.
● CI/CD Pipeline: (If applicable) Proper setup and functioning of continuous integration
and delivery.

Submission Guidelines

● Push your code to a public GitHub repository.


● Provide a README file with setup instructions and any additional notes.
● Include API documentation and any test results.
Bonus Tasks (Optional):

● Implement search functionality using Elasticsearch or Algolia.


● Use Docker to containerize the application and make it easy to deploy.

Deadline

Please submit your assignment within 7 days. If you require more time, let us know in advance.

You might also like