Skip to content

Zenkit Clone v1.0.0

Latest

Choose a tag to compare

@hirwajeaneric hirwajeaneric released this 17 Apr 10:33
· 15 commits to main since this release
732a280

Zenkit App v1 Documentation with v2 Feature Plans

This document outlines the functionalities of Zenkit App v1 and provides insights into planned features for v2.

v1 Release Features

Zenkit v1 is a to-do application designed to help you plan and manage your activities efficiently. Here's a summary of its capabilities:

Task Management:
Create tasks with names and descriptions.
Assign statuses to tasks: Todo, In Progress, Completed, Late, Overdue.
Set due dates and times for tasks with various options:
Start date only (defaults to midnight)
Start date and start time
Start date and duration (minutes, hours, days)
Start date, start time, and duration
End date only (defaults to midnight of the next day)
End date and end time
Update task statuses.
Task Listing and Details:
View a list of all tasks.
Get detailed information about a specific task.
Task Deletion:
Delete unwanted tasks.
Backend Code Highlights
The v1 release is built with a functional backend using Mongoose and Express. Here's a breakdown of some key components:

Task Model:
Defines the structure of a Task object in the database using Mongoose schema.
Stores task name, description, status, and detailed due date information (start/end date, time, duration).
Validates the status to ensure it's one of the predefined options ("Todo", "In Progress", etc.) and duration type (if provided) is valid ("Minutes", "Hours", etc.).
Task Controller:
Handles various HTTP requests related to tasks:
test: A basic test route to verify server functionality.
addTask: Creates a new task in the database based on the request body.
getTasks: Retrieves all tasks from the database.
updateTask: Updates an existing task with provided information.
findById: Gets a specific task by its ID.
deleteTask: Deletes a task by its ID.
Uses validation middleware to check for errors in request data before processing the request.
Handles potential errors using custom error classes and Express error handling mechanisms.
v2 Feature Plans
The next version of Zenkit aims to deliver more advanced functionalities to enhance user experience. Here's a glimpse of what's coming:

Task Categorization:
Implement a system for classifying tasks into different categories (e.g., Weekly tasks, Daily tasks).
Allow users to create and manage custom categories.
Task Filtering and Sorting:
Enable users to filter and sort tasks based on chosen categories.
Provide options to sort tasks by due date, priority, or other relevant criteria.
Task Prioritization:
Introduce priority levels (LOW, MEDIUM, HIGH, VERY HIGH) to indicate task urgency.
Allow users to assign priority levels to each task.
Task Checklists:
Integrate a checklist feature where users can add an array of activities (subtasks) for each task.
Enable marking individual checklist activities as complete.
Task Workload:
Implement a workload system where users can define the effort required for a task on a scale of 0 (lowest) to 5 (highest).
These features are planned for v2 and will significantly improve Zenkit's task management capabilities by providing better organization, prioritization, and progress tracking.

What's Changed

New Contributors

Full Changelog: https://github.com/SheCanCode-Back-end-Cohort-10/zenkit-clone/commits/zenkit