A dynamic Kanban board application built with React that allows users to visualize and organize tickets based on different grouping and sorting criteria.
-
Dynamic Grouping Options:
- Group by Status
- Group by User
- Group by Priority
-
Sorting Options:
- Sort by Priority
- Sort by Title
-
Visual Indicators:
- User avatars
- Priority levels
- Status indicators
- User availability status
-
Responsive Design:
- Works on desktop and mobile devices
- Horizontal scrolling for multiple columns
- Collapsible display menu
- Clone the repository
git clone https://github.com/your-username/kanban-board.git
cd kanban-board
- Install dependencies
npm install
- Start the development server
npm start
- Open your browser Navigate to http://localhost:3000
-
Display Menu:
- Click the "Display" button in the top bar
- Select grouping option (Status/User/Priority)
- Choose sorting preference (Priority/Title)
-
View Tickets:
- Tickets are organized based on selected grouping
- Each ticket shows:
- Title
- User assigned
- Status
- Priority level
-
User Status:
- Green dot: User is available
- Red dot: User is unavailable
src/
├── assets/
│ └── assets.js # Image and icon imports
├── components/
│ ├── Board.js # Main board component
│ ├── Card.js # Individual ticket card
│ ├── Dropdown.js # Display options dropdown
│ └── Navbar.js # Top navigation bar
├── App.js # Root component
├── index.js # Entry point
└── Status.css # Styles
- Fetches ticket data from:
https://api.quicksell.co/v1/internal/frontend-assignment
- Handles loading and error states
- Uses React's useState for local state
- Implements useEffect for API calls
- Maintains display preferences in localStorage
-
Status Based:
- Backlog
- Todo
- In Progress
- Done
- Canceled
-
Priority Based:
- No Priority (0)
- Low (1)
- Medium (2)
- High (3)
- Urgent (4)
-
User Based:
- Groups tickets by assigned user
- Shows user availability status
- Clean and modern UI
- Consistent color scheme
- Responsive design
- Custom icons and avatars
- Smooth animations and transitions
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details
- QuickSell for the project requirements
- React community for excellent documentation
- All contributors and testers
For support, email 6517kritiraj@gmail.com or open an issue in the repository.