ProgressTracker is a comprehensive task management web application that combines powerful task tracking capabilities with AI-driven insights. The application features an intuitive task management interface, data visualization dashboard, and an intelligent chatbot for data analysis.
-
Create, edit, and delete tasks
-
Card-based task visualization
-
Detailed task tracking with multiple parameters
-
AI-driven insights and data analysis
-
Search and filter tasks
-
Priority and type-based categorization
-
Dashboard for task metrics
-
Interactive pie charts showing task distribution by:
-
Priority levels
-
Task types
-
-
Line chart visualization for task completion trends
-
Real-time progress tracking
-
Intelligent chatbot interface
-
Natural language query processing
-
Data-driven task analysis
-
Trend identification and recommendations
The application's AI capabilities are powered by a custom-tuned model in Vertex AI Studio. Here's how the model was configured:
-
Used Gemini 1.5 Pro, optimized for task management contexts
-
Included various query patterns and analytical requests
-
Incorporated domain-specific terminology
-
Fine-tuned using Vertex AI's hyperparameter optimization
-
Optimized for: Task analysis accuracy Natural language understanding Context-aware responses Data interpretation capabilities
-
Response temperature: 0.7 (balanced between creativity and accuracy)
-
Context window: 2048 tokens
-
Custom stop sequences for structured outputs
-
React.js for UI components
-
Chart.js for data visualization
-
Material-UI for component styling
-
Clone the repository
-
Install dependencies:
cd frontend npm install
-
Run the development server:
npm run dev
The backend provides a RESTful API for managing tasks and includes features such as database interaction, logging, and modular route handling.
- API Endpoints:
- Fetch all tasks
- Fetch a single task by ID
- Query tasks using filters
- Add, update, and delete tasks
- Track tasks by JIRA tickets
- Database Integration:
- MongoDB with Mongoose for schema validation and interaction
- Logging:
- All API activity is logged
- Logs stored in a
logs.txt
file
- Modular Structure:
- Routes, models, and controllers are separated for maintainability and scalability
- Node.js: Runtime environment
- Express.js: Framework for building APIs
- MongoDB: NoSQL database
- Mongoose: ODM (Object Data Modeling) library for MongoDB
Ensure you have the following installed:
-
Clone the repository and navigate to backend:
git clone <repository-url> cd backend
-
Install dependencies:
npm install
-
Create a
.env
file with your MongoDB connection string:MONGODB_URI=your_mongodb_connection_string
Connection string used here: mongodb+srv://gaurisankar2003:Mongo%[email protected]/Task_App
-
Run the server:
npm start
backend/
├── models/ # Mongoose schemas
├── routes/ # API routes
├── controllers/ # Route controllers
├── index.js # Main entry point
├── package.json
└── .gitignore
GET /api/tasks
- Fetch all tasksGET /api/tasks/query
- Query tasks using filtersGET /api/tasks/:id
- Fetch a task by MongoDB IDPOST /api/tasks/post
- Add a new taskPUT /api/tasks/update/:jira_ticket
- Update a task by JIRA ticketDELETE /api/tasks/delete/:jira_ticket
- Delete a task by JIRA ticket
GET /api/logs
- Download the API activity log file
Tasks include the following fields:
task
: String (required)priority
: String (Low/Moderate/High/Critical)type
: String (Planned/Incidental/Emergency)assigned_sp
: Numberactual_sp
: Numberexpected_story_points
: Numberactual_story_points
: Numberprogress_percentage
: Number (0-100)status
: String (Completed/Under Review/Pending/Yet to be Assigned)jira_ticket
: String (unique)due_date
: Datedepartment
: Stringcomment
: String