A Task management application built with Angular 20, featuring comprehensive todo and person management with advanced filtering, export capabilities, and responsive design.
- Todo Management: Create, edit, and manage tasks with detailed information
- Priority System: Organize tasks by priority levels (High, Medium, Low)
- Label System: Categorize tasks with customizable labels
- Progress Tracking: Track completion status and date ranges
- Person Assignment: Assign tasks to specific team members
- Contact Management: Manage team members with contact information
- Task Assignment: View and assign tasks to individuals
- Contact Details: Store names, emails, and phone numbers
- Filtering & Search: Advanced filtering by priority, labels, completion status, and assignee
- Export Capabilities: Export data to multiple formats (PDF, Excel)
- Responsive Design: Mobile-friendly interface built with Tailwind CSS
- Real-time Updates: Dynamic data management with reactive forms
- Toast Notifications: User feedback for all actions
- Framework: Angular 20 with standalone components
- Styling: Tailwind CSS with Angular Material components
- State Management: Angular services
- Export Functionality: jsPDF and xlsx libraries
- Testing: Jasmine and Karma
- Build System: Angular CLI with modern bundling
- Node.js (version 18 or higher)
- npm (version 8 or higher)
- Angular CLI
# Clone the repository (if applicable)
git clone https://github.com/sonegillis1/todo
cd todo
# Install dependencies
npm installThe application uses environment-based configuration. Environment files are automatically generated during the build process.
# Start the development server
npm startThe application will be available at http://localhost:4200. The development server supports hot reloading for real-time updates during development.
For development with mock data:
# Start JSON server for mock API
npm run json-serverThis starts a mock API server on http://localhost:3000 with sample data.
npm start # Start development server with environment setupnpm run build # Production build with optimizationnpm test # Run unit tests with Karmanpm run json-server # Start mock API serversrc/
├── app/
│ ├── components/ # Feature components
│ │ ├── todo/ # Todo management components
│ │ ├── person/ # Person management components
│ │ └── shared/ # Reusable UI components
│ ├── models/ # TypeScript interfaces and types
│ ├── services/ # Business logic and data services
│ └── environments/ # Environment configuration
├── public/ # Static assets
└── styles.scss # Global styles
- TodoList: Main todo dashboard with filtering and actions
- TodoModal: Create/edit todo items with full form validation
- PersonList: Team member directory with management capabilities
- PersonModal: Add/edit person details and contact information
- ExportControls: Multi-format data export functionality
- FilterButton: Advanced filtering interface
- Toast: User notification system
The application is designed to work with REST APIs for data persistence. During development, it uses a JSON server for mock data. For production deployment, update the service endpoints in the respective service files.
The application builds to static files in the dist/ directory and can be deployed to any web server or CDN that supports single-page applications.
# Production build
npm run build
# The dist/ folder contains all static assets for deployment- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)