A beautiful, full-stack task management application built with modern web technologies and enhanced with Lucide icons for a polished UI experience.
- Smart Task Management - Create, organize, and track tasks with priority levels and due dates
- User Authentication - Secure registration and login system with bcrypt password hashing
- Real-time Updates - Instant task updates with optimistic UI rendering
- Beautiful UI - Modern design with Lucide icons replacing emojis for a professional look
- Responsive Design - Works seamlessly on desktop, tablet, and mobile devices
- Priority System - Four priority levels (Low, Medium, High, Urgent) with visual indicators
- Task Filtering - Sort tasks by date, priority, or completion status
- Secure Backend - Built with Express.js, Prisma ORM, and MySQL database
- HTML5 - Semantic markup
- CSS3 - Modern styling with CSS variables
- JavaScript (ES6+) - Vanilla JS with class-based architecture
- Lucide Icons - Beautiful, consistent iconography
- Node.js - Runtime environment
- Express.js - Web framework
- Prisma - Modern ORM for database management
- MySQL - Relational database
- bcryptjs - Password hashing
- Helmet - Security headers
- CORS - Cross-origin resource sharing
- Express Rate Limit - API rate limiting
- Node.js (v14 or higher)
- MySQL (v8 or higher)
- npm or yarn
git clone <repository-url>
cd TaskFlownpm installCreate a .env file in the root directory:
# Database Configuration
DATABASE_URL="mysql://username:password@localhost:3306/taskflow_db"
# Server Configuration
PORT=3000
NODE_ENV=development# Generate Prisma Client
npm run db:generate
# Run database migrations
npm run db:migrate
# (Optional) Open Prisma Studio to view database
npm run db:studio# Development mode with auto-reload
npm run dev
# Production mode
npm startThe application will be available at http://localhost:5500
LastMinProject/
βββ prisma/
β βββ schema.prisma # Database schema definition
β βββ migrations/ # Database migration files
βββ public/
β βββ css/
β β βββ style.css # Application styles
β βββ js/
β β βββ app.js # Frontend JavaScript
β βββ images/ # Static images
β βββ index.html # Main HTML file
βββ server.js # Express server & API routes
βββ package.json # Dependencies & scripts
βββ .env # Environment variables (create this)
βββ README.md # This file
POST /api/auth/register- Register new userPOST /api/auth/login- Login user
GET /api/tasks- Get all tasks for authenticated userPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete task
GET /api/health- Server health status
- Register or login to your account
- Enter task title (required)
- Add description (optional)
- Set due date (optional)
- Choose priority level
- Click "Add Task"
- Complete Task - Click the checkbox
- Edit Task - Click the "Edit" button
- Delete Task - Click the "Delete" button
- Sort Tasks - Use the filter dropdown
- Low - Green badge with down arrow icon
- Medium - Yellow badge with minus icon
- High - Orange badge with up arrow icon
- Urgent - Red badge with alert icon
- Password hashing with bcrypt (12 rounds)
- Helmet.js for security headers
- Rate limiting (100 requests per 15 minutes)
- CORS configuration
- SQL injection prevention via Prisma ORM
- XSS protection through HTML escaping
Edit CSS variables in public/css/style.css:
:root {
--primary-color: #ff3cac;
--secondary-color: #00dbde;
--success-color: #00c897;
/* ... more variables */
}Browse Lucide Icons and add them using:
<i data-lucide="icon-name"></i>Then reinitialize:
lucide.createIcons();- Verify MySQL is running
- Check DATABASE_URL in
.env - Ensure database exists
- Check browser console for errors
- Verify Lucide CDN is loading
- Ensure
lucide.createIcons()is called
- Change PORT in
.env - Or kill process using port 3000:
lsof -ti:3000 | xargs kill
This project is designed to work seamlessly with MCP-enabled AI assistants. The codebase follows best practices for:
- Clear Documentation - Comprehensive inline comments
- Modular Architecture - Separation of concerns
- RESTful API Design - Standard HTTP methods and status codes
- Error Handling - Consistent error responses
- Type Safety - Prisma schema provides type definitions
AI assistants can interact with this project through:
- File reading/editing tools
- Command execution for database operations
- Code analysis and refactoring
- Documentation generation
heroku create taskflow-app
heroku addons:create jawsdb:kitefin
git push heroku main- Frontend can be deployed as static site
- Backend requires serverless function adaptation
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npx prisma generate
EXPOSE 3000
CMD ["npm", "start"]MIT License - feel free to use this project for learning or commercial purposes.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
For issues or questions:
- Open an issue on GitHub
- Check existing documentation
- Review API endpoints in
server.js
- Lucide Icons - Beautiful icon library
- Prisma - Excellent ORM
- Express.js - Robust web framework
- Inter Font - Clean typography
Built with β€οΈ for productivity
Last Updated: 2025-11-11