A minimalistic, dark-themed task management application that allows you to organize tasks for multiple groups, teams, or family members.
- User Authentication: Secure account-based system
- Multiple Groups: Create and manage different groups (teams, families, projects)
- Member Management: Add team members or family members to each group
- Task Lists: Individual to-do lists and reminders for each member
- Dark Theme: Clean, minimalistic dark interface
- Responsive Design: Works on desktop and mobile devices
- Node.js (v14 or higher)
- npm or yarn
-
Clone or download this repository
-
Install dependencies:
npm install
-
Start the application:
npm start
-
Open your browser and navigate to
http://localhost:3000
For development with auto-restart:
npm run dev
- Register: Create a new account with email and password
- Login: Access your existing account
- Create Groups: Add groups for different teams or purposes
- Delete Groups: Remove groups and all associated data
- Switch Groups: Click on group names in the sidebar to switch between them
- Add Members: Add team members or family members to each group
- Delete Members: Remove members and all their tasks
- Add Tasks: Create tasks for any member with optional descriptions and due dates
- Edit Tasks: Modify task details, descriptions, and due dates
- Complete Tasks: Check off completed tasks
- Delete Tasks: Remove tasks that are no longer needed
POST /api/register
- Register a new userPOST /api/login
- Login user
GET /api/groups
- Get user's groupsPOST /api/groups
- Create new groupDELETE /api/groups/:id
- Delete group
GET /api/groups/:groupId/members
- Get group membersPOST /api/groups/:groupId/members
- Add member to groupDELETE /api/members/:id
- Delete member
GET /api/members/:memberId/tasks
- Get member's tasksPOST /api/members/:memberId/tasks
- Create task for memberPUT /api/tasks/:id
- Update taskDELETE /api/tasks/:id
- Delete task
The application uses SQLite with the following tables:
- users: User accounts and authentication
- groups: Group information and ownership
- members: Group members
- tasks: Individual tasks with completion status and due dates
- Passwords are hashed using bcrypt
- JWT tokens for secure API access
- Authorization checks for all protected endpoints
For production deployment:
-
Set environment variables:
export JWT_SECRET="your-secure-secret-key" export PORT=3000
-
The application uses SQLite, so no additional database setup is required
-
Serve static files and run the Node.js server
taskflow/
├── server.js # Express server and API routes
├── package.json # Project dependencies and scripts
├── taskflow.db # SQLite database (created automatically)
├── public/
│ ├── index.html # Main HTML structure
│ ├── styles.css # Dark theme styling
│ └── app.js # Frontend JavaScript functionality
└── README.md # This file
The application works on modern browsers that support:
- ES6+ JavaScript features
- CSS Grid and Flexbox
- Fetch API
- Local Storage
MIT License