Plan smarter. Build habits. Let AI handle the heavy lifting.
🌐 Web App · 📱 Download APK · 🤖 AI Assistant · 📖 Docs · 🐛 Report Bug · 💡 Request Feature
- About the Project
- Platforms & Live Links
- Download Android App
- Screenshots
- Features
- Architecture Overview
- Tech Stack
- Project Structure
- Getting Started
- Environment Variables
- API Reference
- Documentation
- Team
- Contributing
- Roadmap
- License
- Support
TASKTIME is an open-source, full-stack productivity platform that combines intelligent task management, smart scheduling, habit tracking, and multi-model AI assistance — all in one unified system.
It is built for people who want more than a simple to-do list. TASKTIME is designed around three core principles:
AI-First — Every feature is built to work alongside AI. From natural language task creation to smart scheduling suggestions, the AI layer is deeply integrated throughout the product, not bolted on as an afterthought.
Behavior-Aware — TASKTIME tracks not just tasks but the person doing them. Daily mood logs, productivity scores, sleep and exercise indicators, and reflection notes give users a complete picture of their own patterns over time.
Cross-Platform — A full-featured Next.js web app and a native Android app built with React Native, both connected to the same backend API on Railway. One account works everywhere.
This project is also built as a real-world, production-grade final-year BCA project at Tulsi College, Beed (B.A.M. University), following industry best practices in REST API design, JWT authentication, database architecture, and mobile development.
| Audience | How TASKTIME helps |
|---|---|
| 🎓 Students | Manage study schedules, assignments, exam prep, and daily habits |
| 💻 Self-learners | Track learning routines, reading streaks, and daily goals |
| 🧑💼 Professionals | Plan work tasks, meetings, deep work sessions, and wellness habits |
| 👨💻 Developers | A reference project for full-stack + React Native + AI architecture |
| 🏛️ Recruiters | Evaluate real-world backend, mobile, and AI integration skills |
| Platform | Technology | Status | URL |
|---|---|---|---|
| 🌐 Web App | Next.js 14 + Vercel | ✅ Live | tasktime-sh1vam-03.vercel.app |
| 🤖 AI Assistant | Web — Multi-model | ✅ Live | tasktime-sh1vam-03.vercel.app/ai |
| ⚙️ Backend API | Node.js + Railway | ✅ Live | tasktime-production.up.railway.app/api |
| 📱 Android App | React Native | ✅ Alpha | Download APK |
| 🍎 iOS App | React Native | 🔜 Planned | — |
⚠️ This is an Alpha release. Features are functional but some things may be incomplete or unstable. Your feedback helps us improve — please open an issue if you find a bug.
| Detail | Value |
|---|---|
| Version | 1.0.0-alpha |
| Minimum Android | 7.0 (API Level 24) |
| Architecture | armeabi-v7a, arm64-v8a |
1. Download the APK on your Android phone
2. Open the downloaded file
3. If blocked, go to:
Settings → Apps → Special app access → Install unknown apps
Enable for your browser or file manager
4. Tap Install
5. Open TASKTIME and sign up
- Email registration with OTP email verification
- JWT-based stateless authentication with Bearer tokens
- Automatic token refresh — stays logged in seamlessly
- Secure 6-digit OTP password reset flow
- Account deletion and full logout
- Tokens stored securely using MMKV on mobile (not AsyncStorage)
- Full CRUD — create, read, update, delete tasks
- Three priority levels — Low / Medium / High with distinct color coding
- Status lifecycle — Pending → In Progress → Completed
- Optional due dates with deadline awareness
- Category and label support for organization
- Task search and filtering
- Assign tasks to specific dates and time slots
- Recurring schedules — Daily, Weekly (choose specific days), Monthly
- Multiple schedules for the same task (e.g., gym at 6am and 6pm)
- Calendar views — Day / Week / Month
- Today's agenda view with all upcoming items
- Schedule conflict detection
- Multi-model support — Google Gemini 1.5 Flash, GPT-4o Mini, Sarvam 30B
- Natural language task creation and planning
- Context-aware answers using your real task and schedule data
- AI-powered productivity suggestions and analysis
- Full conversation history with multiple named threads
- Server-Sent Events (SSE) streaming for real-time responses
- Credit-based usage system tied to Free/Pro plans
- ✅ Available on web — mobile app version planned
- Daily behavior logs with structured fields
- Mood tracking on a 5-point scale
- Productivity score calculation per day
- Sleep hours and exercise indicators
- Personal daily reflection notes
- Streak tracking for consistent habits
- Performance analytics dashboard with trends
| Feature | Free | Pro |
|---|---|---|
| Tasks | Unlimited | Unlimited |
| AI credits / month | 50 | 500 |
| Scheduling | Basic recurrence | Advanced recurrence |
| Analytics | 7-day | 30-day + export |
| Priority support | ❌ | ✅ |
- Razorpay payment gateway (India)
- Automatic credit tracking and monthly renewal
- Plan upgrade/downgrade from app and web
- Minimal dark theme —
#09090bbackground,#00d4ffcyan accent - Typography-first UI inspired by Linear, Vercel, and Clerk
- Shared design tokens across web and mobile via
_authShared.js - Staggered entrance animations and smooth transitions
- Custom bottom tab bar with glass morphism effect
┌──────────────────────────────────────────────────────────────┐
│ CLIENTS │
│ │
│ ┌───────────────────┐ ┌──────────────────────────┐ │
│ │ Next.js Web │ │ React Native Android │ │
│ │ (Vercel CDN) │ │ (APK / Play Store) │ │
│ └─────────┬─────────┘ └────────────┬─────────────┘ │
└──────────────┼─────────────────────────────┼─────────────────┘
│ HTTPS / JWT │
▼ ▼
┌──────────────────────────────────────────────────────────────┐
│ BACKEND API │
│ Node.js + Express (Railway) │
│ │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Auth │ │ Tasks │ │ Schedule │ │ AI Router │ │
│ │ /auth/* │ │/tasks/* │ │/sched/* │ │ /ai/* │ │
│ └─────────┘ └─────────┘ └──────────┘ └────────┬─────────┘ │
│ │ │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ │ │
│ │Behavior │ │ Billing │ │Dashboard │ │ │
│ │/behav/* │ │/bill/* │ │/dash/* │ │ │
│ └─────────┘ └─────────┘ └──────────┘ │ │
│ │ │
│ Prisma ORM + Middleware Layer │ │
└────────────────────────┬────────────────────────┼────────────┘
│ │
┌────────────┘ ┌────────┘
▼ ▼
┌───────────────────────┐ ┌────────────────────────────────┐
│ PostgreSQL DB │ │ AI Providers │
│ (Prisma ORM) │ │ │
│ Hosted on Railway │ │ • Google Gemini 1.5 Flash │
│ │ │ • GPT-4o Mini (OpenAI) │
└───────────────────────┘ │ • Sarvam 30B (Indic) │
└────────────────────────────────┘
Key design decisions:
- Stateless JWT auth — no session storage, tokens refresh automatically
- SSE streaming for AI responses — no polling, real-time token delivery
- Shared API base URL — both web and mobile hit the same Railway backend
- MMKV for mobile token storage — 10× faster than AsyncStorage, synchronous reads
| Library | Version | Purpose |
|---|---|---|
| React Native | 0.76+ | Cross-platform mobile framework |
| React Navigation | 6.x | Stack + Tab navigation |
| Zustand | 4.x | Lightweight global state management |
| react-native-mmkv | 3.x | Fast synchronous local storage |
| Axios | 1.x | HTTP client with interceptors |
| react-native-config | 1.x | .env variable injection |
| react-native-svg | 15.x | SVG rendering (logo, icons) |
| react-native-vector-icons | 10.x | MaterialCommunityIcons + Feather |
| react-native-safe-area-context | 4.x | Safe area insets |
| react-native-razorpay | 2.x | In-app payments |
| react-native-markdown-display | 7.x | Markdown in AI chat |
| Library | Version | Purpose |
|---|---|---|
| Next.js | 14.x | React framework with App Router |
| Tailwind CSS | 3.x | Utility-first CSS |
| Zustand | 4.x | Client-side state management |
| Axios | 1.x | API requests |
| Library | Version | Purpose |
|---|---|---|
| Express.js | 4.x | REST API framework |
| Prisma ORM | 5.x | Type-safe database access + migrations |
| PostgreSQL | 15+ | Primary relational database |
| jsonwebtoken | 9.x | JWT signing and verification |
| bcryptjs | 2.x | Password hashing (salted) |
| Resend | 2.x | Transactional email — OTP, welcome |
| Razorpay SDK | 2.x | Payment order creation + verification |
| Service | Purpose |
|---|---|
| Google Gemini 1.5 Flash / 2.0 | Primary AI model — fast, multimodal |
| OpenAI GPT-4o Mini | Fallback model |
| Sarvam AI 30B | Indic language support |
| Railway | Backend + database hosting |
| Vercel | Frontend hosting with edge CDN |
tasktime/
│
├── app/ # 📱 React Native Android App
│ ├── src/
│ │ ├── api/ # API layer — all HTTP calls
│ │ │ ├── client.js # Axios instance, interceptors, auto-refresh
│ │ │ ├── auth.api.js # Login, register, OTP, refresh, me
│ │ │ ├── task.api.js # Task CRUD
│ │ │ ├── schedule.api.js # Schedule management
│ │ │ ├── ai.api.js # AI conversations + SSE streaming
│ │ │ ├── behavior.api.js # Behavior logs
│ │ │ ├── billing.api.js # Plans and payments
│ │ │ ├── dashboard.api.js # Dashboard statistics
│ │ │ ├── calendar.api.js # Calendar data
│ │ │ └── category.api.js # Task categories
│ │ │
│ │ ├── screens/
│ │ │ ├── auth/ # Authentication flow
│ │ │ │ ├── _authShared.js # Design tokens + shared components
│ │ │ │ ├── IntroScreen.js # Onboarding / hero screen
│ │ │ │ ├── LoginScreen.js # Sign in
│ │ │ │ ├── RegisterScreen.js # Sign up + password strength meter
│ │ │ │ ├── OtpScreen.js # Email verification (6-digit)
│ │ │ │ ├── ForgotPasswordScreen.js
│ │ │ │ └── ResetPasswordScreen.js
│ │ │ │
│ │ │ ├── home/ # Dashboard & overview
│ │ │ │ ├── HomeScreen.js
│ │ │ │ ├── components/
│ │ │ │ └── sections/
│ │ │ │
│ │ │ ├── tasks/ # Task management
│ │ │ │ ├── TasksScreen.js
│ │ │ │ └── sections/
│ │ │ │ ├── CreateTaskScreen.js
│ │ │ │ ├── TaskDetailScreen.js
│ │ │ │ └── TaskSheet.js
│ │ │ │
│ │ │ ├── today/ # Today's agenda
│ │ │ ├── schedule/ # Calendar & scheduling
│ │ │ ├── calendar/ # Full calendar view
│ │ │ ├── ai/ # AI screen (web redirect, mobile coming soon)
│ │ │ └── profile/ # Profile, settings, billing
│ │ │ ├── ProfileScreen.js
│ │ │ ├── SettingsScreen.js
│ │ │ └── BillingScreen.js
│ │ │
│ │ ├── navigation/
│ │ │ ├── RootNavigator.js # Auth vs App gate
│ │ │ ├── AuthNavigator.js # Auth screens stack
│ │ │ ├── MainNavigator.js # App screens stack
│ │ │ ├── TabNavigator.js # Bottom tabs
│ │ │ └── CustomTabBar.js # Custom tab bar with glass effect
│ │ │
│ │ ├── store/
│ │ │ ├── auth.store.js # User + tokens (Zustand + MMKV)
│ │ │ ├── task.store.js # Task state
│ │ │ └── ui.store.js # Theme, preferences
│ │ │
│ │ ├── hooks/
│ │ │ ├── useAuth.js # Auth helpers
│ │ │ ├── useTasks.js # Task operations
│ │ │ ├── useSchedule.js # Schedule operations
│ │ │ └── useStream.js # SSE streaming hook for AI
│ │ │
│ │ ├── context/
│ │ │ ├── ThemeContext.js # Dark/light theme provider
│ │ │ └── AlertContext.js # Global alert/confirm dialog
│ │ │
│ │ ├── utils/
│ │ │ ├── constants.js # API_BASE_URL + app constants
│ │ │ ├── storage.js # MMKV token get/set helpers
│ │ │ └── date.js # Date formatting utilities
│ │ │
│ │ └── theme/
│ │ ├── colors.js # Color palette tokens
│ │ ├── typography.js # Font sizes and weights
│ │ └── spacing.js # Spacing scale
│ │
│ ├── android/ # Android native project
│ │ └── app/src/main/res/ # App icons (mipmap-*)
│ └── .env # Mobile env variables
│
├── frontend/ # 🌐 Next.js Web App
│ ├── app/ # App Router pages
│ ├── components/ # Reusable UI components
│ └── utils/ # Helper functions
│
├── backend/ # ⚙️ Node.js + Express API
│ ├── controllers/ # Request handlers (thin layer)
│ ├── services/ # Business logic
│ ├── routes/ # API route definitions
│ ├── middleware/ # Auth, error handling, validation
│ ├── prisma/
│ │ └── schema.prisma # Database schema + relations
│ └── config/ # App configuration
│
├── docs/ # 📚 Technical documentation (Markdown)
│ ├── architecture.md
│ ├── database_schema.md
│ ├── api_documentation.md
│ └── testing_strategy.md
│
├── documentation/ # 📄 Academic project reports (DOCX)
│
├── .gitignore
├── README.md # This file
├── CONTRIBUTING.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── SECURITY.md
└── LICENSE
| Tool | Min Version | Install check |
|---|---|---|
| Node.js | v18.0+ | node --version |
| npm | v9.0+ | npm --version |
| Git | v2.30+ | git --version |
| Java JDK | 17 | java --version |
| Android Studio | Latest | Required for Android emulator |
# Clone the repo
git clone https://github.com/sh1vam-03/tasktime.git
cd tasktime/backend
# Install dependencies
npm install
# Copy environment template and fill in values
cp .env.example .env
# Run database migrations
npx prisma migrate dev --name init
# Start development server
npm run devThe backend runs at http://localhost:5000.
Verify it's working:
curl http://localhost:5000/api/v1/health
# → { "status": "ok", "timestamp": "..." }cd tasktime/frontend
npm install
cp .env.example .env.local
# Set NEXT_PUBLIC_API_URL to your backend URL
npm run devWeb app opens at http://localhost:3000.
cd tasktime/app
npm install
# Copy env template
cp .env.example .env
# Set API_BASE_URL=http://YOUR_LOCAL_IP:5000/api
# (use your machine's LAN IP, not localhost)
# Start Metro bundler
npx react-native start
# In a second terminal — build and run on Android
npx react-native run-androidMake sure your Android emulator is running or a physical device is connected with USB debugging enabled (
adb devicesto verify).
# Step 1: Generate a signing keystore (one time only)
cd app/android/app
keytool -genkeypair -v \
-keystore tasktime-release.keystore \
-alias tasktime \
-keyalg RSA -keysize 2048 \
-validity 10000
# Step 2: Add credentials to android/gradle.properties
MYAPP_UPLOAD_STORE_FILE=tasktime-release.keystore
MYAPP_UPLOAD_KEY_ALIAS=tasktime
MYAPP_UPLOAD_STORE_PASSWORD=your_password_here
MYAPP_UPLOAD_KEY_PASSWORD=your_password_here
# Step 3: Build
cd app/android
./gradlew clean
./gradlew assembleReleaseOutput: app/build/outputs/apk/release/app-release.apk
⚠️ Never commit your.keystorefile orgradle.propertiespasswords to version control.
# Server
PORT=5000
NODE_ENV=development
# Database
DATABASE_URL=postgresql://user:password@host:5432/tasktime?sslmode=require
# JWT
JWT_SECRET=your_long_random_secret_here
JWT_EXPIRES_IN=7d
JWT_REFRESH_EXPIRES_IN=30d
# OTP
OTP_EXPIRES_MINUTES=10
# Email — Resend (https://resend.com)
RESEND_API_KEY=re_xxxxxxxxxxxx
EMAIL_FROM=noreply@yourdomain.com
# Payments — Razorpay (https://razorpay.com)
RAZORPAY_KEY_ID=rzp_test_xxxxxxxxxx
RAZORPAY_KEY_SECRET=xxxxxxxxxxxxxxxx
# AI Models
GEMINI_API_KEY=your_gemini_key
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
SARVAM_API_KEY=your_sarvam_keyNEXT_PUBLIC_API_URL=https://tasktime-production.up.railway.app/api
NEXT_PUBLIC_RAZORPAY_KEY_ID=rzp_live_xxxxxxxxxxAPI_BASE_URL=https://tasktime-production.up.railway.app/api
⚠️ Security rule: Never commit.envfiles, API keys, or keystores to Git. They are all excluded in.gitignore.
Base URL: https://tasktime-production.up.railway.app/api/v1
All protected endpoints require:
Authorization: Bearer <access_token>
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /auth/register |
❌ | Register new user |
| POST | /auth/verify-otp |
❌ | Verify email with OTP |
| POST | /auth/login |
❌ | Login, returns tokens |
| POST | /auth/refresh |
❌ | Refresh access token |
| POST | /auth/forgot-password |
❌ | Send reset OTP to email |
| POST | /auth/reset-password |
❌ | Reset password with OTP |
| GET | /auth/me |
✅ | Get current user profile |
| POST | /auth/logout |
✅ | Logout |
| DELETE | /auth/delete |
✅ | Delete account |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /tasks |
✅ | Get all tasks |
| POST | /tasks |
✅ | Create a task |
| GET | /tasks/:id |
✅ | Get task by ID |
| PUT | /tasks/:id |
✅ | Update task |
| DELETE | /tasks/:id |
✅ | Delete task |
| PATCH | /tasks/:id/status |
✅ | Update task status |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /schedules |
✅ | Get all schedules |
| POST | /schedules |
✅ | Create schedule |
| GET | /schedules/today |
✅ | Get today's agenda |
| PUT | /schedules/:id |
✅ | Update schedule |
| DELETE | /schedules/:id |
✅ | Delete schedule |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /ai/conversations |
✅ | List conversations |
| POST | /ai/conversations |
✅ | Create conversation |
| GET | /ai/conversations/:id/messages |
✅ | Get messages |
| POST | /ai/conversations/:id/stream |
✅ | Stream AI response (SSE) |
| PATCH | /ai/conversations/:id |
✅ | Rename conversation |
| DELETE | /ai/conversations/:id |
✅ | Delete conversation |
| GET | /ai/settings |
✅ | Get AI settings + credits |
| PUT | /ai/settings |
✅ | Update model preferences |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| GET | /behavior |
✅ | Get behavior logs |
| POST | /behavior |
✅ | Create daily log |
| PUT | /behavior/:id |
✅ | Update log |
Full API documentation with request/response examples: docs/api_documentation.md
| Document | Description |
|---|---|
| 🏗️ System Architecture | High-level design, context diagrams, component breakdown |
| 🗄️ Database Schema | ER diagrams, all table definitions and relationships |
| 📡 API Documentation | All endpoints with full request/response examples |
| 🧪 Testing Strategy | QA protocols, testing tools, coverage goals |
| 📄 Academic Reports | BCA final-year project submission documents |
TASKTIME is developed by a student team from Tulsi College, Beed, Maharashtra under B.A.M. University (BAMU), as both a commercial SaaS product and a BCA final-year project.
![]() Atharv Kundalkar Project Lead
• System Architecture • Multi-Model AI Pipeline • Frontend Framework Design • Global State Management GitHub · LinkedIn · Instagram |
![]() Balaji Bokare Full-Stack Developer
• REST API & Backend • React Native Mobile App • Authentication & Security • Database Design & DevOps GitHub · LinkedIn · Instagram |
![]() Hanumant Surve Frontend Developer
• UI Component Development • Sarvam AI Integration • Voice Interface Development • Indic Language Routing GitHub |
Academic Guide: Prof. Ankush Surve · Tulsi College, Beed · B.A.M. University
Contributions are what make open source great. Every contribution — bug fix, feature, documentation, or feedback — is valued and appreciated.
Please read CONTRIBUTING.md before submitting a pull request.
# 1. Fork this repo on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/tasktime.git
cd tasktime
# 3. Create a branch
git checkout -b feature/your-feature-name
# 4. Make your changes
# Follow the code style and structure of the existing codebase
# 5. Commit
git commit -m "Add: your change description"
# 6. Push
git push origin feature/your-feature-name
# 7. Open a Pull Request targeting the `develop` branch| Type | Pattern | Example |
|---|---|---|
| New feature | feature/name |
feature/push-notifications |
| Bug fix | bugfix/name |
bugfix/otp-expiry |
| Urgent fix | hotfix/name |
hotfix/auth-crash |
| Documentation | docs/name |
docs/api-examples |
| Refactor | refactor/name |
refactor/task-service |
Add: new feature or file added
Fix: bug fixed
Update: existing code improved
Remove: code or file removed
Docs: documentation only change
Refactor: code restructured without behavior change
- Email authentication with OTP verification
- Task management — CRUD, priorities, status, categories
- Smart scheduling with daily / weekly / monthly recurrence
- Behavior tracking — mood, productivity, sleep, exercise logs
- Multi-model AI assistant on web (Gemini, GPT-4o, Sarvam)
- React Native Android app with full feature parity on web
- Razorpay billing with credit-based AI usage
- Minimal dark design system with shared tokens
- Production deployment — Railway backend, Vercel frontend
- Push notifications via Firebase FCM
- AI assistant on mobile app
- Offline mode with background sync
- Task sharing and collaboration
- Export data (CSV / PDF)
- iOS app (App Store release)
- Home screen widgets
- Google Calendar & Outlook integration
- Advanced AI analytics and weekly reports
- Team workspaces for small groups
- Public REST API for third-party integrations
This project is licensed under the MIT License — see the LICENSE file for details.
You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of this software.
| Channel | Link |
|---|---|
| 🐛 Bug Reports | Open an Issue |
| 💡 Feature Requests | Start a Discussion |
| 💬 Questions | Q&A Discussions |
| l1acker03@gmail.com | |
| 🌐 Website | tasktime-sh1vam-03.vercel.app |
- Prof. Ankush Surve for academic guidance and mentorship
- The React Native, Next.js, and Prisma open-source communities
- Google, OpenAI, and Sarvam AI for API access
- Everyone who tests, reports bugs, and helps improve TASKTIME
Built with ❤️ by the TASKTIME Team
Making productivity simple, intelligent, and accessible for everyone.
⭐ If you find this project useful, please star the repository — it really helps!
Atharv Kundalkar · Balaji Bokare · Hanumant Surve


