Welcome to the Better TaskManager project! This is a full-featured task management tool designed for efficient task creation, tracking, and organization. It offers a user-friendly experience and several components aimed at improving productivity and making task management seamless. The project is built using React for the frontend and Node.js with Express and MongoDB for the backend.
- Task Creation and Update: Easily create new tasks or update existing ones with descriptions, categories, estimated durations, and deadlines.
- Task Table View: Provides a comprehensive table view of all tasks with details such as status, starting time, and deadlines.
- Gantt Chart Visualization: A visual representation of tasks to track progress using Google Charts.
- Task Status Management: Track task status across different stages like PENDING, STARTED, and COMPLETED.
- Search Functionality: Search for tasks based on descriptions for easy access and management.
- Settings Configuration: Configure maximum allowed working hours per week for better task planning.
- Responsive Modals and Confirmations: Utilize modals for creating, updating tasks, and receiving confirmations for actions.
The backend server provides several API endpoints for managing tasks and settings. Here is an overview of the available endpoints:
- POST
/api/post
: Create a new task with details like description, category, starting time, deadline, estimated duration, and actual duration. - GET
/api/getAll
: Retrieve all tasks along with current setting information. - GET
/api/getOne/:id
: Retrieve a specific task by its ID. - PATCH
/api/update/:id
: Update an existing task by its ID. - DELETE
/api/delete/:id
: Delete a task by its ID.
- PATCH
/api/setting
: Update the weekly hours setting.
The backend ensures that each task is associated with a setting, which helps manage working hours effectively.
- Clone the repository:
git clone https://github.com/yourusername/better-taskmanager.git cd better-taskmanager/backend
- Install dependencies:
npm install
- Set up environment variables: Create a
.env
file in the backend directory and add the following variables:DATABASE_URL=your_mongodb_connection_string PORT=3001
- Run the backend server:
The backend server will start on http://localhost:3001.
npm start
- Navigate to the frontend directory:
cd ../frontend
- Install dependencies:
npm install
- Run the development server:
npm start
- Open http://localhost:3000 to view the application in the browser.
- To create a new task, click on the "Create Task" button in the navigation bar.
- Use the task table to view existing tasks, edit them, or mark them as completed.
- Navigate to different views (e.g., Gantt Chart, Timeline) using the navigation bar.
Contributions are welcome! If you would like to contribute to the project, please follow these guidelines:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add a new feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.