Project Description

Domains: API Design and Implementation, Database Management, Backend Development
Project Overview: This project involves the development of a robust backend system for a recommendation engine, including APIs, a dynamic website, and a user-friendly admin panel. The goal is to create a scalable and secure system using Python and FastAPI/Django, with Cassandra as the database. The system will be documented and tested using Swagger, and version control will be managed via GitHub with CI/CD pipelines using GitHub Actions.

Work Description

Roles: 2 Backend Developers
Project Duration: 3 months
Tasks/Deliverables:

  1. Design the database schema and API specifications
  2. Develop backend APIs for CRUD operations with authentication
  3. Implement a user admin app with role-based access control
  4. Set up and manage the development environment and CI/CD pipelines
  5. Deliver a consolidated report and handover the codebase

Skills Learned

Python and Django framework usage
API design and implementation
Database management with Cassandra and PostgreSQL
Front-end development with ReactJS
GitHub CI/CD
API testing using Swagger
TDD and linting

Qualifications Required

Proficiency in Python is necessary. Experience with database management systems, especially PostgreSQL or Cassandra, is appreciated. Experience with Django is appreciated.

How to Apply?

Submission Link: https://forms.gle/Zod3xYNAhKZetUzTA

Deadline: 11:59 PM, 7th September, 2024

To enroll for the project, you must fill out the form above. For further credit, you can attempt and submit the assignment below to the best of your abilities, taking the aid of any tools online. Partial progress is recognized. We will contact you personally if you are shortlisted for the interview.

(Optional) Assignment: Backend System with CRUD Operations, Admin Panel, and Data Entry Interface

Task 1: Database and Models Setup

  1. Create a PostgreSQL Database:
    1. Set up a PostgreSQL database for the project.
    2. Create a table for users within the database.
  2. SQLAlchemy Models:
    1. Develop SQLAlchemy models for User and Product.
    2. Include relevant fields, such as username, email, and role for User and name, description, price, and stock for Product.

Task 2: CRUD APIs and Admin Panel for User Management

  1. Implement the following endpoints for user management:
    1. GET /admin/users/ - Retrieve a list of users.
    2. POST /admin/users/ - Create a new user.
    3. PUT /admin/users/{user_id} - Update user details.
    4. DELETE /admin/users/{user_id} - Delete a user.
  2. Admin Panel:
    1. Develop an admin panel to manage users using libraries such as sqladmin, fastapi_admin, or jinja2.
    2. The admin panel should allow administrators to perform the above CRUD operations on users.

Task 3: Dynamic Table Creation for Each User

  1. Unique Product Table for Each User:
    1. Implement functionality to automatically create a unique table for products every time a new user is added.
    2. Each table should be specific to the user and store products enlisted by that user.

Task 4: User Admin Page and CRUD API for Product Management

  1. User Admin Page:
    1. Create a user-specific admin page where users can log in and manage their products.
    2. Use libraries like sqladmin, fastapi_admin, or jinja2 to build the interface.
  2. Implement the following endpoints for product management:
    1. GET /admin/products/ - Retrieve a list of products.
    2. POST /admin/products/ - Add a new product.
    3. PUT /admin/products/{product_id} - Update product details.
    4. DELETE /admin/products/{product_id} - Delete a product.

Announcements

Comments