{"id":31642352,"url":"https://github.com/swastikiiit/task-tracker","last_synced_at":"2025-10-15T14:58:07.563Z","repository":{"id":313351401,"uuid":"1051082655","full_name":"SwastikIIIT/Task-Tracker","owner":"SwastikIIIT","description":"A modern task management and time tracking application built with Next.js, featuring AI-powered text suggestions, real-time timers, and comprehensive task organization. Create, edit, and track tasks with intelligent duration monitoring and daily productivity summaries.","archived":false,"fork":false,"pushed_at":"2025-09-05T14:28:27.000Z","size":124,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-07T04:00:54.065Z","etag":null,"topics":["authentication","backend","cookie","hooks","jwt","nextjs","react","restapi","tailwindcss","zustand"],"latest_commit_sha":null,"homepage":"https://task-tracker-three-self.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SwastikIIIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-09-05T12:16:28.000Z","updated_at":"2025-09-05T14:28:31.000Z","dependencies_parsed_at":"2025-09-05T14:40:01.846Z","dependency_job_id":"afb1bf08-f159-426b-bf25-ea19cce78d11","html_url":"https://github.com/SwastikIIIT/Task-Tracker","commit_stats":null,"previous_names":["swastikiiit/task-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SwastikIIIT/Task-Tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwastikIIIT%2FTask-Tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwastikIIIT%2FTask-Tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwastikIIIT%2FTask-Tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwastikIIIT%2FTask-Tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwastikIIIT","download_url":"https://codeload.github.com/SwastikIIIT/Task-Tracker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwastikIIIT%2FTask-Tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279085745,"owners_count":26100020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["authentication","backend","cookie","hooks","jwt","nextjs","react","restapi","tailwindcss","zustand"],"created_at":"2025-10-07T03:58:41.538Z","updated_at":"2025-10-15T14:58:07.557Z","avatar_url":"https://github.com/SwastikIIIT.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Tracker Pro 📋⏱️\n\nA modern, full-stack task management and time tracking application built with Next.js, featuring real-time timer functionality, AI-powered task suggestions, user authentication, and comprehensive task management.\n\n## ✅ Live Demo\n\n🔗 **[Live Application](https://task-tracker-three-self.vercel.app)**\n\n*Create your own account to get started - no demo credentials needed!*\n\n## 🚀 Features\n\n- **User Authentication** - JWT-based secure login/signup\n- **Task Management** - Create, edit, delete, and organize tasks\n- **Time Tracking** - Start/stop timers for tasks with duration tracking\n- **AI Task Suggestions** - Get intelligent task recommendations powered by Google Gemini\n- **Status Management** - Track task progress (Pending, In Progress, Completed)\n- **Daily Summary** - View time tracked and task completion statistics\n- **Responsive Design** - Works seamlessly on desktop and mobile\n- **Real-time Updates** - Instant UI updates with Zustand state management\n\n## 🛠️ Tech Stack\n\n### Frontend\n- **Next.js 15** - React framework with App Router\n- **React 19** - UI library\n- **Zustand** - Lightweight state management\n- **Tailwind CSS** - Utility-first CSS framework\n- **JavaScript** - Main programming language\n\n### Backend\n- **Next.js API Routes** - Serverless backend functions\n- **MongoDB** - NoSQL database with Mongoose ODM\n- **JWT** - JSON Web Tokens for authentication\n- **bcryptjs** - Password hashing\n- **Google Gemini AI** - AI-powered task suggestions\n\n### Deployment\n- **Vercel** - Frontend and API deployment\n- **MongoDB Atlas** - Cloud database\n\n## 📦 Installation \u0026 Setup\n\n### Prerequisites\n- Node.js 18+ \n- npm or yarn\n- Git\n- MongoDB Atlas account (or local MongoDB)\n- Google AI Studio API key\n\n### Local Development Setup\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/SwastikIIIT/Task-Tracker.git\n   cd Task-Tracker\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Environment Setup**\n   Create a `.env.local` file in the root directory:\n   ```env\n   # MongoDB Connection\n   MONGO_URI=\"mongodb+srv://username:password@cluster.mongodb.net/tasktracker\"\n   \n   # JWT Secret (generate a strong random string)\n   JWT_SECRET=\"your-super-secret-jwt-key-here-make-it-long-and-complex\"\n   \n   # Google Gemini AI API Key\n   GEMINI_API_KEY=\"your-google-ai-studio-api-key\"\n   ```\n\n4. **Database Setup**\n   - Create a MongoDB Atlas cluster or set up local MongoDB\n   - Update the `MONGO_URI` with your connection string\n   - The application will automatically create collections on first run\n\n5. **Start Development Server**\n   ```bash\n   npm run dev\n   ```\n\n6. **Open Application**\n   Navigate to `http://localhost:3000`\n\n## 📁 Project Structure\n\n```\nTask-Tracker/\n├── app/                    # Next.js App Router\n│   ├── api/               # API routes\n│   │   ├── auth/          # Authentication endpoints\n│   │   │   ├── login/route.js\n│   │   │   └── signup/route.js\n│   │   ├── tasks/         # Task CRUD operations\n│   │   │   ├── route.js\n│   │   │   └── [id]/route.js\n│   │   ├── time-logs/     # Time tracking endpoints\n│   │   │   ├── route.js\n│   │   │   └── [id]/route.js\n│   │   ├── summary/route.js # Dashboard data\n│   │   └── ai-suggest/route.js # AI task suggestions\n│   ├── components/        # React components (JSX)\n│   │   ├── AuthForm.jsx   # Login/signup forms\n│   │   ├── Navbar.jsx     # Navigation header\n│   │   ├── TaskForm.jsx   # Task creation form\n│   │   ├── TaskList.jsx   # Task listing\n│   │   ├── TaskItem.jsx   # Individual task component\n│   │   ├── ActiveTimer.jsx # Active timer display\n│   │   └── DailySummary.jsx # Dashboard summary\n│   ├── stores/            # Zustand state stores\n│   │   ├── authStore.js   # Authentication state\n│   │   └── taskStore.js   # Task management state\n│   ├── lib/               # Utility functions\n│   │   ├── actions.js     # API calling functions\n│   │   ├── utils.js       # Helper utilities\n│   │   ├── middleware.js  # JWT middleware\n│   │   ├── auth.js        # Authentication helpers\n│   │   └── connect.js     # MongoDB connection\n│   ├── models/            # MongoDB/Mongoose models\n│   │   ├── User.js        # User schema\n│   │   ├── Task.js        # Task schema\n│   │   └── Time-Log.js    # Time log schema\n│   └── page.jsx           # Main application page\n├── public/                # Static assets\n├── package.json           # Dependencies and scripts\n└── README.md             # Project documentation\n```\n\n## 🔐 Authentication\n\nThe application uses JWT-based authentication with the following features:\n- ✅ **Secure Registration** - Email validation and password hashing with bcryptjs\n- ✅ **Login/Logout** - Persistent sessions with token storage\n- ✅ **Protected Routes** - API endpoints secured with JWT middleware\n- ✅ **Auto-login** - Remember user sessions across browser refreshes\n\n## 🤖 AI Features\n\n- **Smart Task Suggestions** - Get AI-powered task recommendations using Google Gemini\n- **Context-aware Suggestions** - AI considers your existing tasks and work patterns\n- **Productivity Enhancement** - Intelligent suggestions to improve task organization\n\n## 📱 API Endpoints\n\n### Authentication\n- `POST /api/auth/signup` - User registration\n- `POST /api/auth/login` - User login\n\n### Tasks\n- `GET /api/tasks` - Get user tasks\n- `POST /api/tasks` - Create new task\n- `PUT /api/tasks/[id]` - Update task\n- `DELETE /api/tasks/[id]` - Delete task\n\n### Time Tracking\n- `GET /api/time-logs` - Get time logs\n- `POST /api/time-logs` - Start timer\n- `PUT /api/time-logs/[id]/stop` - Stop timer\n\n### Dashboard \u0026 AI\n- `GET /api/summary` - Get daily summary statistics\n- `POST /api/ai-suggest` - Get AI task suggestions\n\n## 🎨 Screenshots\n\n### LoginForm\n![Dashboard](https://github.com/user-attachments/assets/d5b14a84-a5fb-4813-9a1c-e232f34d9be6\n)\n\n### DashBoard\n![Task Management](https://github.com/user-attachments/assets/cedd1e06-9889-41f9-8854-da37fec60269\n)\n\n## 🚀 Deployment\n\n### Deploy to Vercel\n\n1. **Connect Repository**\n   - Push code to GitHub\n   - Connect repository to Vercel\n\n2. **Environment Variables**\n   Add these in Vercel dashboard:\n   ```\n   MONGO_URI=your_mongodb_atlas_connection_string\n   JWT_SECRET=your_production_jwt_secret\n   GEMINI_API_KEY=your_google_ai_studio_api_key\n   ```\n\n3. **Deploy**\n   ```bash\n   npm run build\n   vercel --prod\n   ```\n\n### Database Setup (Production)\n- Set up MongoDB Atlas cluster\n- Whitelist Vercel's IP addresses in Atlas\n- Update `MONGO_URI` with production connection string\n\n## 🧪 Testing\n\n```bash\n# Run development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Start production server\nnpm start\n```\n\n## 📈 Performance Features\n\n- **Server-side Rendering** - Fast initial page loads\n- **API Route Optimization** - Efficient MongoDB queries with Mongoose\n- **Client-side State Management** - Efficient state updates with Zustand\n- **Code Splitting** - Smaller bundle sizes with Next.js\n- **Database Indexing** - Optimized MongoDB queries\n\n## 👨‍💻 Author\n\n**Swastik Sharma**\n- GitHub: [@SwastikIIIT](https://github.com/SwastikIIIT)\n- Email: swastikiiit.05@gmail.com\n\n---\n\n⭐ **Star this repository if you found it helpful!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswastikiiit%2Ftask-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswastikiiit%2Ftask-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswastikiiit%2Ftask-tracker/lists"}