Taskaty is a modern task management system built with React, Node.js, and MongoDB. It provides a comprehensive solution for managing tasks, projects, and team collaboration.
- Email-based authentication
- JWT-based secure authentication
- Email verification system
- Password reset functionality
- Social authentication (coming soon)
- Create, read, update, and delete tasks
- Task status tracking (To Do, In Progress, Done)
- Task prioritization (Low, Medium, High)
- Task assignment to team members
- Task comments and discussions
- Task progress tracking
- Due date management
- Create and manage projects
- Team member management
- Project status tracking
- Project activity monitoring
- Project deadline management
- Modern and responsive design
- Multiple view options (Kanban, List, Calendar)
- Real-time updates
- Dark/Light mode support
- Mobile-friendly interface
- React with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- Shadcn UI components
- Zustand for state management
- React Query for data fetching
- Axios for API requests
- Socket.IO for real-time features
- Node.js with Express
- MongoDB with Mongoose
- JWT for authentication
- Socket.IO for real-time communication
- Nodemailer for email services
- Bcrypt for password hashing
Taskaty/
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ ├── hooks/ # Custom React hooks
│ │ ├── types/ # TypeScript type definitions
│ │ └── utils/ # Utility functions
│ └── public/ # Static assets
│
└── Backend/ # Node.js backend application
├── config/ # Configuration files
├── controllers/ # Route controllers
├── middlewares/ # Custom middlewares
├── models/ # Mongoose models
├── routers/ # API routes
└── utils/ # Utility functions
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/Taskaty.git
cd Taskaty- Install frontend dependencies:
cd frontend
npm install- Install backend dependencies:
cd ../Backend
npm install- Create environment files:
# API Configuration
VITE_API_URL=http://localhost:3000/api
VITE_API_BASE_URL="http://localhost:3000"
# Authentication
VITE_AUTH_TOKEN_KEY=auth_token
VITE_AUTH_USER_KEY=auth_user
# Feature Flags
VITE_ENABLE_SOCIAL_AUTH=false
VITE_ENABLE_EMAIL_VERIFICATION=true
# App Configuration
VITE_APP_NAME=Taskaty
VITE_APP_VERSION=1.0.0# Server
PORT=3000
# Database
# Example local connection
Connection_String="mongodb://localhost:27017/taskaty"
# Example cloud connection (replace <username>, <password>, <cluster>)
# Connection_String="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/"
# Frontend
FRONTEND_URL=http://localhost:8080
# JWT (JSON Web Token)
JWT_SECRET="your_secret_key_here"
JWT_EXPIRES_IN="7d"
# Environment
# Use "production" or "development"
NODE_ENV="development"
# Mock data usage (true/false)
USE_MOCK=true
# Links (change before production)
VERIFICATIONLINK="http://localhost:3000/api/auth/verify-email"
RESET_PASS_LINK="http://localhost:3000/api/auth/change-password"
# App email credentials (for Nodemailer or similar)
APP_EMAIL_ADDRESS="your_email@example.com"
APP_EMAIL_PASSWORD="your_app_password"
# Google OAuth
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
# Cloudinary configuration
CLOUDINARY_URL="cloudinary://<api_key>:<api_secret>@<cloud_name>"
CLOUDINARY_CLOUD_NAME="your_cloud_name"
CLOUDINARY_API_KEY="your_api_key"
CLOUDINARY_API_SECRET="your_api_secret"- Start the development servers:
Frontend:
cd frontend
npm run devBackend:
cd Backend
npm run dev- POST
/api/auth/register- Register a new user - POST
/api/auth/login- Login user - POST
/api/auth/logout- Logout user - POST
/api/auth/reset-password- Request password reset - GET
/api/auth/verify-email- Verify email address
- GET
/api/task/me- Get user's tasks - POST
/api/task- Create a new task - PUT
/api/task/:id- Update a task - DELETE
/api/task/:id- Delete a task
- GET
/api/project/me- Get user's projects - POST
/api/project- Create a new project - PUT
/api/project/:id- Update a project - DELETE
/api/project/:id- Delete a project
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.