This is an interactive Kanban board application built with ReactJS. The application fetches data from a provided API and allows users to group and sort tasks based on various criteria such as Status, User, and Priority. It also allows sorting tasks by Priority and Title. The UI design closely follows the provided screenshots and adheres to the functionality and visual structure outlined in the assignment.
- Introduction
- Features
- API
- Installation
- Usage
- Grouping Options
- Sorting Options
- State Persistence
- Dependencies
- Configuration
- Examples
- Troubleshooting
- Contributors
- License
- Dynamic Grouping: Users can group tasks by Status, User, or Priority.
- Sorting: Tasks can be sorted by Priority (descending) or Title (ascending).
- Responsive Design: The application is fully responsive, providing a seamless experience across devices.
- Pure CSS: Styled using pure CSS without any third-party libraries (such as Bootstrap, Tailwind, etc.), ensuring lightweight and fast performance.
- State Persistence: User's view settings (grouping and sorting) are saved across page reloads.
The application interacts with the following API for fetching task data:
- API Endpoint:
https://api.quicksell.co/v1/internal/frontend-assignment
- The API provides task information including their Status, Priority, and Assigned User.
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/ramtanniru/Quicksell-Kanban.git
-
Navigate to the project directory:
cd frontend-kanban-board
-
Install the dependencies:
npm install
-
Start the development server:
npm start
-
The application will be running at
http://localhost:3000
.
Once the application is running:
- Click on the "Display" button to choose a grouping method (Status, User, or Priority).
- Use the sorting options to arrange tasks by Priority or Title.
- The Kanban board will automatically update to reflect your selections.
- View preferences (grouping and sorting) will persist even after refreshing the page.
- By Status: Groups tickets based on their current status.
- By User: Groups tickets according to the user they are assigned to.
- By Priority: Groups tickets based on their priority level (Urgent, High, Medium, Low, No Priority).
- By Priority: Sorts the tickets in descending order of priority, from Urgent to No Priority.
- By Title: Sorts tickets alphabetically in ascending order based on their title.
The application saves the user's current view (grouping and sorting) in localStorage, ensuring that the same view is displayed after a page reload.
This project is built with the following dependencies:
- ReactJS: Frontend framework used for building user interfaces.
- Fetch: Used for making API requests to fetch task data.
- localStorage: For saving and persisting user preferences across sessions.
Add .env file and create constant for BACKEND_API
Here are examples of how the application groups and sorts tasks:
- Grouped by Status: Tasks are grouped according to their status (Backlog, Todo, In progress, Done, Canceled).
- Grouped by User: Tasks are grouped by the user to whom they are assigned.
- Grouped by Priority: Tasks are grouped according to their priority (Urgent, High, Medium, Low, No Priority).
- Your Name - Tanniru Leela Sai Ram
This project is licensed under the MIT License.