Skip to content

DhruvPrmar/TaskApplicationWeb

Repository files navigation

Task & Time Tracker

A complete task and time tracking application with secure authentication, real-time time tracking, and comprehensive task management features.

🌐 Live Demo

Frontend: [https://task-application-web.vercel.app] Backend API: [https://taskapplicationbackend.onrender.com]

Test Credentials

Email: [email protected]
Password: 12345678

✨ Features

  • Secure Authentication: JWT-based auth with protected routes
  • Task Management: Full CRUD operations with user-specific data isolation
  • Real-time Time Tracking: Start/stop/pause timers with session persistence
  • Responsive Design: Clean, mobile-friendly interface
  • Data Validation: Comprehensive input validation and error handling

🛠️ Tech Stack

Frontend: SvelteKit, TypeScript, Tailwind CSS
Backend: AdonisJS, Node.js, PostgreSQL
Deployment: Vercel (Frontend), Render (Backend + Database)
Authentication: JWT tokens with secure session management

📁 Project Structure

TaskApplication/
├── backend/          # AdonisJS API server
│   ├── app/         # Controllers, models, middleware
│   ├── database/    # Migrations, seeders
│   └── config/      # App configuration
├── web/             # SvelteKit frontend
│   ├── src/         # Components, routes, stores
│   └── static/      # Static assets
└── README.md

🚀 Local Development Setup

Prerequisites

  • Node.js 18+
  • PostgreSQL (or use Docker)

Backend Setup

cd backend
npm install
cp .env.example .env
node ace generate:key
# Update .env with database credentials
npm run migration:run
npm run dev

Frontend Setup

cd web
npm install
cp .env.example .env
# Update VITE_API_URL in .env
npm run dev

🔐 Environment Variables

Backend (.env)

APP_KEY=your_generated_key
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=password
DB_DATABASE=task_tracker
JWT_SECRET=your_jwt_secret

Frontend (.env)

VITE_API_URL=http://localhost:3333

📋 API Endpoints

  • POST /auth/register - User registration
  • POST /auth/login - User login
  • GET /tasks - Get user tasks
  • POST /tasks - Create task
  • PUT /tasks/:id - Update task
  • DELETE /tasks/:id - Delete task
  • POST /time-entries - Start time tracking
  • PUT /time-entries/:id - Stop time tracking

🚀 Deployment

Backend (Render)

  1. Connect GitHub repository
  2. Set build command: cd backend && npm install
  3. Set start command: cd backend && npm start
  4. Add environment variables

Frontend (Vercel)

  1. Connect GitHub repository
  2. Set root directory: web
  3. Framework preset: SvelteKit
  4. Add environment variables

Built with ❤️ using AdonisJS and SvelteKit

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published