A lightweight, Full Stack task-management PWA built with Vanilla JavaScript, NanoStores, Chart.js and AI Advisor powered task advising.
Check out the live demo here: Taskly
Taskly Pro is a Progressive Web App that helps you create, track, and analyze your tasks in real-time. It combines intuitive UI components, data-driven charts, and an AI-powered advisor (via Puter.js the AI Advisor API) to keep you productive and informed about your task load.
-
Authentacation and Authorization
- Creating account via Sign Up page
- Sign In to your account via Sign In page
- Removing accoute with validation of password
-
Task Hub
- Generate task description base on given title by AI
- Create, edit, delete, and track tasks
- Filter tasks by status
- Sort by name and date
- Special button for task assistant
-
AI Advisor
- Get personalized advice on how to prioritize or tackle your tasks
- Powered by AI Advisor API through Puter.js
- Achieve best advices base on your history messages feature
- Save every new chat saparatly on local storage
-
Dashboard
- Categories Bar: breakdown of tasks by category
- 7-Day Activity: line/bar chart of tasks completed over the last week
- Progress Donut Chart: visual summary of On-Hold, In-Progress, and Done statuss
- Time Reports: tracked vs. remaining time per task
-
Timer
- Smooth animations and an easy-to-use timer
- Circular, interactive timer UI for custom intervals
- Start/Pause/Reset controls
- HTML5 & SCSS
- Vanilla JavaScript (ES6+)
- Chart.js for interactive charts
- NanoStores for global status management
- Navigo for client-side routing
- Notyf for toast notifications
- Puter.js + AI Advisor API for AI-driven task advising
- Service Worker & Web App Manifest for PWA support
- EmailJs for getting feedback and opinions
- Notyf for giving beutifull UI notification
-
Clone the repo and install the defendencies
git clone https://github.com/rahel-webdeveloper/taskly.git cd taskly npm install
npm run dev
- Task Creation: Navigate to Task Hub and click "Create task or plus icon"
- Task Management: Drag tasks between status columns to update progress
- Productivity Insights: Visit the Dashboard to view your productivity metrics and today's report
- Focus Sessions: Use the Timer feature to maintain concentration on important tasks
- AI Assistance: Consult the AI Advisor when you need help organizing or prioritizing tasks
Building Taskly taught me to:
- Creating and structuring an AI driven app from scratchπ
- Integrate AI advice with AI Advisor API via Puter.js
- Manage status effectively with Nano Stores.
- Route seamlessly using Navigo.
- Visualize data via Chart.js (bar, doughnut, line, pie).
- Polish UX with Notyf toasts and a custom SVG timer.
For the first time managing an AI assistant base on your own thoughts through code
export const systemMsg = {
role: "system",
content: `
your name is Taskly! you are a task advisor!
`,
};
export const getAdvice = async () => {
const reply = await puter.ai.chat(systemMsg, {
model: "claude-3-7-sonnet",
});
return reply;
};
taskly/
βββ public/ # Images, Minifest.json, and other assets
βββ src/ # Main source code for the app
β βββ assets/ # Images, fonts, and other assets
β βββ components/ # Reusable React/Vue/JS components
β βββ sass/ # SCSS stylesheets and variables
β βββ data/ # UI data and local storage
β βββ services/ # API Client and auth services
β βββ tasks/ # Tasks all logic and UI
β βββ routes.js # SPR (single page route) controller
β βββ pages/ # Main page views/screens
β βββ welcome/ # Welcome page and getting user feedback
β βββ auth/ # auth logic and components (Sign In, Sign Up, Remove Account)
β βββ taskHub/ # First page of APP where create new task and see today's report
β βββ dashsboard/ # data charts and show user productivity
β βββ aiAdvice/ # AI Advice page you can chat and get advices
β βββ timer/ # Timer logic and components (picker, focus)
βββ .env # Environment variables (API keys, config)
βββ App.js # Root app component
βββ .gitignore # Git ignore file
βββ package.json # Project dependencies and scripts
βββ README.md # Project documentation
βββ vercel.json # vercel config
- Mobile application with cross-platform synchronization
- Calender integration for deadline management
- Team collabration features
- Advanced reporting and analytics
- Custom themes and persolzation options
Taskly backend project developed with JavaScript(Express.js) designed to support the Taskly application ecosystem. This service provides the necessary APIs, business logic, and data handling for the Taskly front-end and its features.
Taskly Backend handles core logic, user management, task operations, and analytics for the Taskly productivity suite. It is built for seamless integration with a JavaScript/TypeScript front-end and is suitable for deployment as a cloud-based or local service.
- User authentication and authorization
- CRUD operations for tasks and categories
- Fully RESTful API design with JSON responses
- Integrated with AI-based task task advisor
- Designed for extensibility and easy deployment
taskly-backend/
βββ config/ # Configuration files (arcjet, environment)
βββ controllers/ # Main controllers (auth, tasks, user)
βββ database/ # Connect to database
βββ middleware/ # All Middlewares (arcjet, auth, error)
βββ models/ # Models for (tasks, user)
βββ routes/ # All routes like (auth, tasks, user)
βββ app.js #Main file for controlling server
βββ .env.development.local #Environment variables for development mode file for controlling server
βββ .env.production.local #Environment variables for production mode file for controlling server
βββ package.json
βββ README.md
-
Clone the repository:
git clone https://github.com/rahel-webdeveloper/taskly-backend.git cd taskly-backend
-
Install dependencies:
npm install
-
Configure environment:
- Add to
.env.(development/production).local
all below envirment variables.
- Add to
PORT=5000
NODE_ENV="development"
DB_URI="your db uri"
JWT_SECRET="your jwt secret"
JWT_EXPIRES_IN="your jwt expires time"
ARCJET_KEY="ajkey_092ftm9ccefz"
ARCJET_ENV="development/production"
Start the backend server (default port is typically 5000):
npm start
Or, for development with auto-reload:
npm run dev
The backend will be accessible at http://localhost:5000/
(or your configured port).
Some API Emdpoits are below.
POST /auth/sign-up
β Register a new userPOST /auth/sign-in
β Authenticate user and retrieve tokenPOST /auth/sign-out
β Sign Out userPOST /auth/remove-account
β Deleting user account with validation of password.
GET /tasks
β Retrieve all tasks for the authenticated userPOST /tasks
β Create a new taskPUT /tasks/:id
β Update a taskDELETE /tasks/:id
β Delete a task
-
GET /users
β Retrieve all users only to admin user -
GET /users/:id
β Retrieve data for the authenticated user -
...and more depending on project scope
Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request.
This project is public and currently does not specify a license.
Made with π by Khatibullah Rahel
Important
Love Taskly? Throw us a β β it makes our day!π
Follow us on social media LinkdIn Facebook Telegram
Taskly - Organize, Focus, Achieve