{"id":25020556,"url":"https://github.com/iaadi4/tracklytic","last_synced_at":"2026-04-14T06:03:14.343Z","repository":{"id":277332219,"uuid":"926743550","full_name":"iaadi4/Tracklytic","owner":"iaadi4","description":"Tracklytic is a full-stack habit, expense, and attendance tracker built with Next.js, React Query, Prisma, and PostgreSQL for seamless personal analytics.","archived":false,"fork":false,"pushed_at":"2026-01-01T15:59:17.000Z","size":420,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-06T20:53:14.538Z","etag":null,"topics":["betterauth","nextjs","postgresql","prisma","react-query","shadcn-ui","tailwindcss"],"latest_commit_sha":null,"homepage":"https://tracklytic.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iaadi4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-03T19:33:10.000Z","updated_at":"2026-01-01T15:59:15.000Z","dependencies_parsed_at":"2025-03-30T10:26:15.656Z","dependency_job_id":"1d1138d8-64f1-486f-a98a-3a32b38358f9","html_url":"https://github.com/iaadi4/Tracklytic","commit_stats":null,"previous_names":["iaadi4/tracklytic"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iaadi4/Tracklytic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iaadi4%2FTracklytic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iaadi4%2FTracklytic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iaadi4%2FTracklytic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iaadi4%2FTracklytic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iaadi4","download_url":"https://codeload.github.com/iaadi4/Tracklytic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iaadi4%2FTracklytic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31784255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["betterauth","nextjs","postgresql","prisma","react-query","shadcn-ui","tailwindcss"],"created_at":"2025-02-05T12:16:34.111Z","updated_at":"2026-04-14T06:03:14.311Z","avatar_url":"https://github.com/iaadi4.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📊 Tracklytic - Personal Productivity Tracker\n\n\u003cdiv align=\"center\"\u003e\n\n![Tracklytic Logo](https://github.com/user-attachments/assets/729718fb-f7a0-4a67-89ae-3dbc34549537)\n\n**A comprehensive productivity tracking application that helps you build better habits, manage finances, and track your progress**\n\n[![Next.js](https://img.shields.io/badge/Next.js-14-black?style=flat-square\u0026logo=next.js)](https://nextjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue?style=flat-square\u0026logo=typescript)](https://www.typescriptlang.org/)\n[![Prisma](https://img.shields.io/badge/Prisma-ORM-2D3748?style=flat-square\u0026logo=prisma)](https://www.prisma.io/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n\n[✨ Live Demo](https://tracklytic.vercel.app/)  • [🐛 Report Bug](https://github.com/iaadi4/Tracklytic/issues) • [💡 Request Feature](https://github.com/iaadi4/Tracklytic/issues)\n\n\u003c/div\u003e\n\n---\n\n## 🌟 Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 🎯 **Habit Tracking**\n- Create and monitor personal habits\n- Set goals and track progress\n- Visual progress indicators\n- Monthly/yearly insights\n\n### 📊 **Budget Management**\n- Set financial goals\n- Monitor savings progress\n- Track spending patterns\n- Goal completion status\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 📅 **Attendance Management**\n- Track class/event attendance\n- Completion status monitoring\n- Progress visualization\n- Historical data tracking\n\n### 💰 **Expense Management**\n- Record monthly expenses\n- Categorize spending\n- Monthly insights\n- Expense analytics\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### 🔐 **Additional Features**\n- **Secure Authentication** with Better Auth\n- **Responsive Design** built with Tailwind CSS and shadcn/ui\n- **Modern UI/UX** with clean, intuitive interface\n- **Real-time Updates** with TanStack Query\n- **Email Notifications** via SendGrid\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\nBefore you begin, ensure you have:\n- ![Node.js](https://img.shields.io/badge/Node.js-18+-green?style=flat-square\u0026logo=node.js) Node.js 18 or higher\n- ![npm](https://img.shields.io/badge/npm-yarn-red?style=flat-square\u0026logo=npm) npm, yarn, or pnpm\n- ![Database](https://img.shields.io/badge/Database-PostgreSQL%2FMySQL%2FSQLite-blue?style=flat-square) Database (PostgreSQL recommended)\n\n### 📦 Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/iaadi4/Tracklytic.git\n   cd tracklytic\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   # or\n   yarn install\n   # or\n   pnpm install\n   ```\n\n3. **Environment Setup**\n   \n   Create `.env` file in the root directory:\n   ```env\n   # 🔐 Authentication\n   BETTER_AUTH_SECRET=BsFFyNBDv9YyJy12hXGFzJMRfL9C2uAQ\n   BETTER_AUTH_URL=http://localhost:3000\n   \n   # 🗄️ Database\n   DATABASE_URL=\"postgresql://username:password@localhost:5432/tracklytic\"\n   \n   # 📧 Email Service\n   SENDGRID_API_KEY=\"your-sendgrid-api-key\"\n   ```\n\n4. **Database Setup**\n   ```bash\n   npx prisma generate\n   npx prisma db push\n   ```\n\n5. **Start Development Server**\n   ```bash\n   npm run dev\n   ```\n\n   🎉 **That's it!** Open [http://localhost:3000](http://localhost:3000) to see Tracklytic in action.\n\n---\n\n## 🛠️ Tech Stack\n\n\u003cdiv align=\"center\"\u003e\n\n| Category | Technology |\n|----------|------------|\n| **Frontend** | ![Next.js](https://img.shields.io/badge/Next.js-14-black?style=flat-square\u0026logo=next.js) ![TypeScript](https://img.shields.io/badge/TypeScript-blue?style=flat-square\u0026logo=typescript) ![Tailwind](https://img.shields.io/badge/Tailwind-CSS-38B2AC?style=flat-square\u0026logo=tailwind-css) |\n| **Backend** | ![Prisma](https://img.shields.io/badge/Prisma-ORM-2D3748?style=flat-square\u0026logo=prisma) ![Better Auth](https://img.shields.io/badge/Better-Auth-orange?style=flat-square) |\n| **Database** | ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?style=flat-square\u0026logo=postgresql) ![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=flat-square\u0026logo=mysql) ![SQLite](https://img.shields.io/badge/SQLite-003B57?style=flat-square\u0026logo=sqlite) |\n| **State Management** | ![TanStack Query](https://img.shields.io/badge/TanStack-Query-FF4154?style=flat-square) |\n| **Email Service** | ![SendGrid](https://img.shields.io/badge/SendGrid-1A82E2?style=flat-square\u0026logo=sendgrid) |\n| **UI Components** | ![shadcn/ui](https://img.shields.io/badge/shadcn%2Fui-black?style=flat-square) |\n\n\u003c/div\u003e\n\n---\n\n## 📁 Project Structure\n\n```\ntracklytic/\n├── 📱 app/\n│   ├── 🔌 api/                  # REST API endpoints\n│   │   ├── attendance/          # Attendance tracking\n│   │   ├── auth/               # Authentication routes\n│   │   ├── budget/             # Budget management\n│   │   ├── expense/            # Expense tracking\n│   │   ├── habits/             # Habit tracking\n│   │   └── settings/           # User settings\n│   ├── 🔐 (auth)/              # Authentication pages\n│   └── 🛠️ (tools)/             # Main application pages\n├── 🧩 components/              # Reusable UI components\n├── 📚 lib/                     # Utilities and configurations\n├── 🗄️ prisma/                  # Database schema\n└── 📦 node_modules/            # Dependencies\n```\n\n---\n\n## 🔗 API Reference\n\n### 🔐 Authentication\nAll protected endpoints require a valid user session.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e👤 User Management\u003c/strong\u003e\u003c/summary\u003e\n\n- `GET /api/settings` - Get user profile information\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🎯 Habit Tracking\u003c/strong\u003e\u003c/summary\u003e\n\n- `POST /api/habits` - Create or update habits\n- `GET /api/habits` - Retrieve all user habits\n- `DELETE /api/habits` - Delete a specific habit\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e📅 Attendance Tracking\u003c/strong\u003e\u003c/summary\u003e\n\n- `POST /api/attendance` - Create or update attendance records\n- `GET /api/attendance` - Get all attendance records\n- `DELETE /api/attendance` - Delete an attendance record\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e💰 Budget Management\u003c/strong\u003e\u003c/summary\u003e\n\n- `POST /api/budget` - Create or update budget trackers\n- `GET /api/budget` - Get all budget trackers\n- `DELETE /api/budget` - Delete a budget tracker\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e💸 Expense Management\u003c/strong\u003e\u003c/summary\u003e\n\n- `POST /api/expense` - Create or update expenses\n- `GET /api/expense` - Get monthly expenses\n- `DELETE /api/expense` - Delete an expense record\n\n\u003c/details\u003e\n\n---\n\n## 🗄️ Database Schema\n\nOur database is designed with performance and data integrity in mind:\n\n### 🔑 Key Features\n- **UUID Primary Keys** for enhanced security\n- **Foreign Key Constraints** with cascading deletes\n- **Indexed Fields** for optimal query performance\n- **Unique Constraints** to prevent data duplication\n\n### 📊 Core Models\n- **User** - Primary user entity with authentication\n- **Session \u0026 Account** - Better Auth session management\n- **Habit \u0026 HabitTracker** - Habit definitions and progress\n- **Attendance** - Class/event attendance tracking\n- **Budget** - Financial goal setting and monitoring\n- **Expenses** - Monthly expense categorization\n- **Verification** - Email verification and password reset\n\n---\n\n## 🤝 Contributing\n\nWe love contributions! Here's how you can help make Tracklytic better:\n\n### 🚀 Getting Started\n\n1. **Fork the repository**\n   ```bash\n   git clone https://github.com/yourusername/Tracklytic.git\n   ```\n\n2. **Create a feature branch**\n   ```bash\n   git checkout -b feature/amazing-feature\n   ```\n\n3. **Make your changes**\n   - Write clean, documented code\n   - Follow the existing code style\n   - Add tests if applicable\n\n4. **Commit your changes**\n   ```bash\n   git commit -m 'feat: add amazing feature'\n   ```\n\n5. **Push to your branch**\n   ```bash\n   git push origin feature/amazing-feature\n   ```\n\n6. **Open a Pull Request**\n\n### 📝 Contribution Guidelines\n\n- **Code Style**: We use TypeScript and follow consistent patterns\n- **API Design**: Maintain consistent response formats and error handling\n- **UI/UX**: Follow the existing design system using Tailwind CSS\n- **Testing**: Add tests for new features when applicable\n- **Documentation**: Update README and add comments for complex logic\n\n### 🐛 Found a Bug?\n[Create an issue](https://github.com/iaadi4/Tracklytic/issues/new?assignees=\u0026labels=bug\u0026template=bug_report.md) with detailed steps to reproduce.\n\n### 💡 Have an Idea?\n[Request a feature](https://github.com/iaadi4/Tracklytic/issues/new?assignees=\u0026labels=enhancement\u0026template=feature_request.md) and let's discuss it!\n\n## 📜 Scripts\n\n| Command | Description |\n|---------|-------------|\n| `npm run dev` | 🚀 Start development server |\n| `npm run build` | 🏗️ Build for production |\n| `npm run start` | ▶️ Start production server |\n| `npm run lint` | 🔍 Run ESLint |\n| `npm run type-check` | ✅ Run TypeScript compiler |\n\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/iaadi4/Tracklytic/blob/main/LICENSE) file for details.\n\n\u003cdiv align=\"center\"\u003e\n\n**Made with ❤️**\n\n⭐ **Star this repo if you find it helpful!** ⭐\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiaadi4%2Ftracklytic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiaadi4%2Ftracklytic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiaadi4%2Ftracklytic/lists"}