Simple and efficient Task Tracker app developed with Node.js, Express.js, and MongoDB. Its frontend, crafted with vanilla JavaScript, seamlessly interacts with the backend, allowing users to manage tasks effortlessly. Focusing on productivity and ease of use.
- Features
- Getting Started
- Usage
- API Endpoints
- Frontend
- Backend
- User Authentication
- Contributing
- Blog Post
- License
- User Management: Register and login securely.
- Task Management: Perform CRUD operations on tasks, including adding, updating, and deleting.
- Forgot Password: Request a temporary password via email if forgotten.
- Responsive Design: Works seamlessly on desktop and mobile devices.
- Dark Mode: Enjoy a comfortable viewing experience, even in low light environments.
Before you begin, ensure you have the following tools installed:
- Node.js and npm
- MongoDB
-
Clone the repository:
git clone https://github.com/lebogangolifant/task-tracker.git
-
Install dependencies:
cd task-tracker npm install
-
Set up MongoDB:
-
Make sure MongoDB is running.
-
Create a
.env
file in the project's root directory. -
Add your MongoDB connection string to the
.env
file:MONGO_URI=your-mongodb-connection-string
Replace
your-mongodb-connection-string
with your actual MongoDB connection string.
-
-
Start the server:
npm start
-
Navigate to
http://localhost:3000/tasks
in your browser to see data stored in JSON files.
-
Open the web application
index.html
file in your browser. -
Add, manage, and track your tasks!
- GET /tasks: Retrieve all tasks.
- GET /tasks/:taskId: Retrieve a specific task by ID.
- POST /tasks: Add a new task.
- PUT /tasks/:taskId: Update an existing task.
- DELETE /tasks/:taskId: Delete a task.
{
"_id": 1,
"title": "Complete Project Proposal",
"description": "Write a detailed project proposal for submission.",
"due_date": "2023-11-28",
"status": "pending"
}
- Built with HTML5, CSS3, and JavaScript.
- Utilizes the Fetch API for communication with the backend.
- Built with Node.js and Express.
- Uses Mongoose for MongoDB integration.
This version includes user authentication using JWT (JSON Web Tokens).
- POST /register: Register a new user.
- POST /login: Login an existing user.
- POST /forgot-password: Request a temporary password via email.
Contributions are welcome! Please follow the contribution guidelines.
An in-depth look at the project development process
This project is licensed under the MIT License.