The application will allow users to create, update, and delete tasks. Tasks should have a title, description, and a status (e.g., "TO_DO," "IN_PROGRESS," "DONE"). Users are also able to view a list of tasks and filter them by status.
-
User Interface: A user-friendly interface for the task management application is created. It contains the following components:
- A form to create a new task with fields for title, description, and status.
- A list of tasks with the ability to update the status or delete a task.
- A filter or dropdown to filter tasks by status (e.g., "All," "To Do," "In Progress," "Done").
-
User Experience: Implement smooth and responsive user interactions, including form validation to ensure that tasks cannot be created without a title. Use modern front-end technologies such as React
-
Styling: Styling of application is done using CSS or any CSS preprocessor, Sass, along with a CSS framework, Tailwind CSS.
-
Responsive Design: The application is responsive and works well on both desktop and mobile devices.
-
API Development: RESTful API is created to handle the CRUD (Create, Read, Update, Delete) operations for tasks. The API is built using Node.js with Express.js.
-
Data Storage: A database is used to store task data. PostgreSQL is used as the database.
-
Validation: Server-side validation is implemented to ensure that task data is valid before saving it to the database. Tasks must have a title and a valid status.
-
Error Handling: Errors are handled gracefully, returning useful error messages and status codes.
- Unit Tests: Unit tests for critical parts of the application, such as API endpoints and data validation logic, are implemented using a testing framework such as Jest.
- User authentication and authorization to restrict access to tasks.
- Task due dates and reminders.
- Task sorting and searching capabilities.
- User profiles with avatars.
-
Clone the repository and change the working directory to the project directory.
git clone <repo-url> && cd <project-directory>
-
Change to the
clientdirectory and install the dependencies.cd client && npm install
-
Start the React development server.
npm start
-
Start the PostgreSQL server and create a new database.
createdb task_management
-
Migrate the database.
npx prisma migrate dev --name init
-
Seed the database.
npm run seed
-
Open a new terminal and change to the
serverdirectory and install the dependencies.cd server && npm install
-
Copy the
.env.examplefile to.envand update the environment variables.cp .env.example .env
-
Start the Node.js server.
npm start
-
Open the browser and navigate to
http://localhost:3000/to view the application.