Productivity Tracker with Weekly Summary and Historical Search
Create a simple application using React that tracks daily productivity tasks (tasks completed, time spent, focus level) with an intuitive interface and appealing visual design. It should include a visual element (a bar chart or heatmap, for example) that shows productivity trends over time, helping the user understand their work patterns.
Three parts: the tracker, then two Gen-AI tasks
The productivity tracker
A React app where users log daily tasks with time spent and focus level, presented with clear visual styling and a chart or heatmap of productivity trends over time. Task data must survive a page refresh (localStorage or a backend).
Gen-AI task part one: weekly summary
At the end of each week, the application should generate a one-paragraph summary report of the tasks and productivity metrics collected over the week, along with suggestions to improve efficiency or focus for the next week. The summary and suggestions should be generated using a free GenAI API.
Gen-AI task part two: historical search
Store weekly productivity summaries and suggestions in a vector store, and create an agent that lets users search for past weeks with similar productivity patterns (e.g., "Show me weeks when I completed a lot of coding tasks"). Use LangChain or Pydantic-AI for the agent and a vector store of your choice (e.g., Chroma, FAISS).
Setup, context, and what we'll test
Setup / context
- Use React.js to set up the project.
- Use functional components and React hooks (e.g.,
useState,useEffect). - Include comments in your code to explain your logic.
- For the weekly summary, integrate a free GenAI API to generate the report and suggestions.
- For part two, use LangChain or Pydantic-AI to implement a vector store (e.g., Chroma, FAISS) and an agent to search past productivity summaries.
Tests to perform
- Tasks can be added or edited easily (input task name, time spent, and focus level).
- Tasks are displayed with appropriate visual styling (e.g., color-coded by category or focus level).
- The application looks good and is user-friendly across common use cases (desktop and mobile views).
- Task information persists when the page is refreshed (localStorage or a backend).
- A weekly summary report is generated, summarizing the week's productivity (tasks completed, average focus) in one paragraph and providing actionable suggestions for the next week.
- Weekly summaries and suggestions are stored in a vector store, and the agent can accurately search for past weeks with similar productivity patterns based on user queries.
Example details
| Element | Example |
|---|---|
| Daily input | Users log tasks ("Wrote code," "Team meeting"), time spent (2 hours), and focus level (low, medium, high). |
| Visualization | A heatmap showing task completion by day, or a bar chart comparing focus levels across weeks. |
| Weekly summary | A GenAI-generated report like, "This week, you completed 15 tasks, mostly coding, but focus was low on Wednesday. Try scheduling deep work sessions earlier next week." |
| Historical search | A query like "Find weeks where I completed similar coding tasks" retrieves past summaries using vector similarity in the store. |
What to send us
-
Private GitHub repository shared with
@am2222,@andrewlew1s,@david733,@mandaleeyp, and@johnjung-readynet. -
README.mdwith instructions on how to run the React project and how to configure the vector store and agent (dependencies for LangChain or Pydantic-AI, vector store setup). - Decision log. A separate markdown file outlining your decision-making process and justifying the technical selections of libraries, models, and other components. Link it from the main README.
- Sample data or scripts to populate the vector store for testing the historical productivity search.