A minimalist personal learning progress tracker that helps you stay consistent and accountable with your learning goals.
- 🎯 Goal Management - Create and organize learning goals with status tracking (active/paused/done)
- 📊 Progress Tracking - Log detailed progress with notes, hours spent, and timestamps
- 📈 Statistics Dashboard - View comprehensive statistics including total hours, progress count, and activity dates
- 🤖 AI-Powered Insights - Get personalized learning advice and progress analysis using OpenAI
- 🔮 Smart Progress Analysis - Automatic percentage calculation, trend detection, and consistency tracking
- 💡 Intelligent Recommendations - AI-generated suggestions based on your learning patterns and progress data
- 🎨 Modern UI - Clean, responsive design built with Tailwind CSS
- 🚀 Real-time Updates - Instant feedback when adding progress or updating goals
- 💾 Local Data Storage - SQLite database for fast, reliable local data storage
- Frontend: Next.js 14 (App Router) + TypeScript
- Database: SQLite with Prisma ORM
- AI Integration: OpenAI API for intelligent insights
- Styling: Tailwind CSS
- State Management: Server Actions + React state
- Development: TypeScript, ESLint
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/Revanza1106/TrackWise.git cd TrackWise -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Add your OpenAI API key for AI features:
DATABASE_URL="file:./dev.db" OPENAI_API_KEY=your_openai_api_key_here
-
Set up the database
npx prisma migrate dev
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
- Click "New Goal" in the header
- Fill in the goal details:
- Title (required): What you want to learn
- Description (optional): Additional details about your goal
- Status: active, paused, or done
- Click "Create Goal"
- Click on any goal from the dashboard
- In the "Add Progress" section:
- Note (required): What you worked on
- Hours (optional): How much time you spent
- Date: When you did the work (defaults to today)
- Click "Add Progress"
Each goal displays:
- Total Entries: Number of progress logs
- Total Hours: Cumulative time spent
- Last Activity: Most recent progress date
- Status: Current goal state
Trackwise leverages AI to enhance your learning experience:
- Progress Analysis: Automatic calculation of completion percentage, learning consistency, and progress trends
- Personalized Advice: AI-generated recommendations based on your learning patterns
- Smart Recommendations: Actionable tips to improve consistency and achieve goals faster
- Trend Detection: Identifies if your learning is improving, stable, or needs attention
To get AI insights, visit any goal detail page and view the "Progress Analysis" section.
TrackWise/
├── prisma/
│ ├── schema.prisma # Database schema
│ └── migrations/ # Database migrations
├── src/
│ ├── app/
│ │ ├── actions/ # Server actions for CRUD
│ │ ├── goals/ # Goal-related pages
│ │ ├── layout.tsx # Root layout
│ │ ├── page.tsx # Home dashboard
│ │ └── globals.css # Global styles
│ ├── components/
│ │ ├── GoalForm.tsx # Goal creation/edit form
│ │ ├── Header.tsx # Navigation header
│ │ └── ProgressForm.tsx # Progress logging form
│ ├── lib/
│ │ └── prisma.ts # Database client
│ └── types/
│ └── index.ts # TypeScript types
├── public/ # Static assets
└── README.md
Trackwise uses a simple two-table schema:
model Goal {
id Int @id @default(autoincrement())
title String
description String?
status String // active | paused | done
createdAt DateTime @default(now())
progress ProgressLog[]
}
model ProgressLog {
id Int @id @default(autoincrement())
goalId Int
date DateTime
note String
hours Float?
goal Goal @relation(fields: [goalId], references: [id], onDelete: Cascade)
}We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
npm run test - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow the existing code style
- Add TypeScript types for new components
- Include comments for complex logic
- Test your changes thoroughly
- Keep the UI clean and minimalist
If you encounter database errors:
-
Reset the database:
rm dev.db npx prisma migrate dev
-
Regenerate Prisma client:
npx prisma generate
If port 3000 is occupied:
-
Kill existing processes:
pkill -f "next dev" -
Or use a different port:
npm run dev -- -p 3001
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - React framework
- Prisma - Database ORM
- Tailwind CSS - CSS framework
- Claude - AI assistant for development
If you have any questions or issues:
- Open an Issue
- Check the Wiki for documentation
- Join our Discussions
Trackwise - Stay consistent, track progress, achieve your learning goals! 🎯✨