A sophisticated, feature-rich todo application built with Angular 20, PrimeNG, and Tailwind CSS. Organize your tasks, manage projects, and achieve your goals with a beautiful and intuitive interface.
- Create Tasks: Add new tasks with titles and optional descriptions
- Mark Complete: Check off completed tasks with smooth animations
- Delete Tasks: Remove tasks with confirmation dialogs
- View Task List: See all your tasks in an organized, filterable list
- Projects/Pledges: Group tasks under meaningful projects and goals
- Due Dates: Set deadlines and track overdue tasks
- Priorities: Assign Low, Medium, or High priority levels
- Smart Filtering: Search, filter by priority, project, and completion status
- Statistics Dashboard: Track your productivity with real-time metrics
- Modern UI: Beautiful, responsive design with PrimeNG components
- Tailwind CSS: Utility-first CSS framework for consistent styling
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Smooth Animations: Engaging interactions and transitions
- Accessibility: Built with accessibility best practices
- Frontend Framework: Angular 20 (Standalone Components)
- UI Components: PrimeNG 20
- Styling: Tailwind CSS 4
- State Management: RxJS Observables
- Storage: Local Storage (easily swappable for backend APIs)
- Build Tool: Angular CLI
- Package Manager: npm
- Node.js 18+
- npm 9+ or yarn
- Angular CLI 20+
-
Clone the repository
git clone <repository-url> cd xtodo-client
-
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser Navigate to
http://localhost:4200
npm run buildThe build artifacts will be stored in the dist/ directory.
src/
βββ app/
β βββ components/
β β βββ todo/ # Main todo component
β β βββ project-management/ # Project management component
β βββ models/ # Data models and interfaces
β βββ services/ # Business logic and data services
β βββ app.component.ts # Main app component
β βββ app.routes.ts # Application routing
β βββ app.config.ts # App configuration
βββ assets/ # Static assets
βββ styles.css # Global styles
- StorageService: Handles data persistence with localStorage
- TaskService: Manages task business logic and filtering
- TodoComponent: Main task management interface
- ProjectManagementComponent: Project creation and management
- Task: Task entity with all properties
- Project: Project/pledge entity
- TaskFilters: Filtering options interface
The application uses PrimeNG's Aura theme with custom Tailwind CSS integration.
Configured with tailwindcss-primeui plugin for seamless integration with PrimeNG components.
The application is fully responsive and optimized for:
- Desktop: Full-featured interface with sidebar navigation
- Tablet: Adaptive layout with optimized touch interactions
- Mobile: Mobile-first design with collapsible sections
- Create tasks with titles, descriptions, priorities, and due dates
- Assign tasks to projects for better organization
- Mark tasks as complete with visual feedback
- Delete tasks with confirmation dialogs
- Create custom projects with names, descriptions, and colors
- Track progress with visual progress bars
- View task counts and completion statistics
- Manage project lifecycle (create, edit, delete)
- Search tasks by title or description
- Filter by priority level (Low, Medium, High)
- Filter by project assignment
- Filter by completion status
- Filter by due date
- Total task count
- Active vs. completed tasks
- Tasks due today
- Overdue tasks
- Project progress tracking
The application currently uses localStorage for data persistence, making it perfect for:
- Personal use
- Offline functionality
- Quick prototyping
- Easy migration to backend APIs
The service architecture is designed to easily swap localStorage with:
- REST APIs
- GraphQL endpoints
- Real-time databases
- Cloud storage solutions
# Run unit tests
npm test
# Run e2e tests
npm run e2enpm startnpm run buildnpm run watch- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Angular Team for the amazing framework
- PrimeNG Team for the excellent UI components
- Tailwind CSS Team for the utility-first CSS framework
- Open Source Community for inspiration and support
If you have any questions or need help:
- Create an issue in the repository
- Check the documentation
- Review the code examples
Happy Tasking! π