Giter VIP home page Giter VIP logo

apyhub-react-i's Introduction

API Documentation

alt text

Instructions

As part of this interview, you're tasked with implementing a small project management interface. Below are the steps and features we'd like you to focus on:

  1. Clone the Repository: Start by cloning the provided GitHub repository to your local machine.
  2. Create a New Branch: Before you start making changes, create a new branch for your work. This branch will be used to assess your contribution.
  3. Display Projects: Implement a UI that displays a list of projects retrieved from the API. Place this list in a panel on the left side of your application.
  4. Project Details: When a user clicks on a project in the list, fetch and display the project's details, including its tasks, on the right panel.
  5. Add Projects: Include a feature to add new projects through the interface, making a POST request to the /projects endpoint.
  6. Edit/Delete Projects: Allow users to edit and delete projects using the PUT and DELETE methods on the /projects/{projectId} endpoint.
  7. Edit/Delete Tasks: Similar to projects, enable editing and deleting tasks within a project. This requires interaction with the /projects/{projectId}/tasks/{taskId} endpoint.
  8. Loading UI: Implement a loading indicator that appears while data is being fetched from the API, enhancing the user experience.

Please ensure your application handles these operations effectively, reflecting changes in the UI immediately after any add, edit, or delete operation.

API Interaction

Refer to the API documentation provided in the earlier section to understand how to interact with the backend for fetching, creating, updating, and deleting projects and tasks. Your implementation should make use of the API endpoints documented there.


Base URL

http://127.0.0.1:8000

Projects

  • List All Projects

    • Method: GET
    • Endpoint: /projects
    • Description: Retrieves a list of all projects.
  • Create a New Project

    • Method: POST
    • Endpoint: /projects
    • Description: Creates a new project.
    • Body:
      {
        "projectName": "New Project"
      }

Specific Project

  • Retrieve a Project

    • Method: GET
    • Endpoint: /projects/{projectId}
    • Description: Retrieves details of a specific project by projectId.
  • Update a Project

    • Method: PUT
    • Endpoint: /projects/{projectId}
    • Description: Updates the specified project.
    • Body:
      {
        "projectName": "Updated Project Name"
      }
  • Delete a Project

    • Method: DELETE
    • Endpoint: /projects/{projectId}
    • Description: Deletes the specified project.

Tasks within a Project

  • List All Tasks in a Project

    • Method: GET
    • Endpoint: /projects/{projectId}/tasks
    • Description: Retrieves all tasks within a specific project.
  • Add a Task to a Project

    • Method: POST
    • Endpoint: /projects/{projectId}/tasks
    • Description: Adds a new task to a project.
    • Body:
      {
        "title": "New Task",
        "description": "Task description",
        "status": "Pending",
        "assignees": ["Dev A", "Dev B"],
        "dueDate": "2024-12-31"
      }

Specific Task in a Project

  • Retrieve a Task

    • Method: GET
    • Endpoint: /projects/{projectId}/tasks/{taskId}
    • Description: Retrieves details of a specific task within a project.
  • Update a Task

    • Method: PUT
    • Endpoint: /projects/{projectId}/tasks/{taskId}
    • Description: Updates the specified task within a project.
    • Body:
      {
        "title": "Updated Task Title",
        "status": "Completed"
      }
  • Delete a Task

    • Method: DELETE
    • Endpoint: /projects/{projectId}/tasks/{taskId}
    • Description: Deletes the specified task from a project.

Replace {projectId} and {taskId} with the actual IDs of the project and task you intend to manipulate.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.