As per the guidelines mentioned in the assignment document, this web application is created using React and TypeScript. For this project, I chose Vite over Create React App (CRA) due to dependency version conflicts encountered with CRA. Vite offers faster development builds, modern tooling, and better support for handling dependencies, making it an efficient choice for this application
- React
- TypeScript
- Ant Design
- CSS
- Axios
- JSON Server
- dayjs
- Responsiveness - To ensure the table is responsive, I implemented a horizontal scrollbar, drawing inspiration from Notion's table component for its clean and intuitive design.
- No sort feature - I initially thought about adding an automatic sorting feature that would move completed tasks to the bottom, but I decided to skip it. I felt it was more user-friendly to keep things simple and accessible, similar to how Notion handles it.
- Pagination - limited to 5 entries for easier testing
- API Integration with a mock server
- Edit and Delete task functionality
- Updated the Datepicker component to restrict users from selecting past dates
- Notification added on Form submit and update for better UI
- Ant Design's form validation added
- /src
- /api
- api.ts
- apiUtils.ts
- /components
- Body.css
- Body.tsx
- TaskForm.css
- TaskForm.tsx
- TaskTable.tsx
- /utils
- types.ts
- App.css
- App.tsx
- main.tsx
- db.json
- Clone the repository
git clone https://github.com/vijita-u/scizers-task-management-app.git - Install dependencies using npm:
npm install - Run the development server:
npm run dev - Start JSON Server JSON Server Github Repo
Go to http://localhost:5001/ to access server. If you're running your own mock server, ensure that it's up and running on the same host as the frontend app.
json-server --watch db.json
This app has been deployed on Netlify: Link