A modern Vue 3 + TypeScript waste collection tracking and payment management system built for Rwanda's waste management ecosystem.
- Responsive Design - Mobile-first with adaptive layouts
- Multi-language Support - English, Kinyarwanda, French, Swahili
- Real-time Payment Processing - Secure PIN-based transactions
- Service Tracking - Live collection agent monitoring
- Debt Management - Automated alerts and payment reminders
- Bento Box Dashboard - Modern widget-based interface
- Vue 3 - Composition API with TypeScript
- Vite - Lightning fast build tool
- Pinia - State management
- Vue Router - Client-side routing
- Vue I18n - Internationalization
- Iconify - Icon system
- CSS Custom Properties - Design tokens
# Clone the repository
git clone <repository-url>
cd agruni-waste-management
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview-
Install Dependencies
npm install
-
Start Development Server
npm run dev
-
Open Browser Navigate to
http://localhost:3000
src/
├── assets/
│ └── styles/
│ └── tokens.css # Design tokens
├── components/
│ ├── base/ # Reusable base components
│ ├── domain/ # Business-specific components
│ └── layout/ # Layout components
├── composables/ # Vue composables
├── stores/ # Pinia stores
├── views/ # Page components
├── i18n/
│ ├── locales/ # Translation files
│ └── index.ts # i18n configuration
├── utils/ # Utility functions
├── App.vue # Root component
└── main.ts # Application entry point
The application follows the "Civic Clarity" design system with:
- Color Palette - Semantic, accessible colors
- Typography - Sora (display), DM Sans (body), DM Mono (code)
- Spacing - 8px base grid system
- Components - Token-based, reusable components
- Responsive - Mobile-first breakpoints
Supported languages:
- English (en)
- Kinyarwanda (rw)
- French (fr)
- Swahili (sw)
Translation files are located in src/i18n/locales/.
- auth.store.ts - User authentication
- payment.store.ts - Payment processing
- ui.store.ts - UI state management
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run type-check # TypeScript type checking
npm run lint # ESLint with auto-fixCreate a .env.local file for local development:
VITE_API_BASE_URL=http://localhost:3001
VITE_APP_TITLE=Agruni Waste Management- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
- PIN-based payment authentication
- Input validation and sanitization
- XSS protection
- CSRF protection
npm run buildThe build artifacts will be stored in the dist/ directory.
The application is designed to work in various environments:
- Development:
npm run dev - Staging: Build with staging environment variables
- Production: Build with production environment variables
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
Built with ❤️ for Rwanda's waste management ecosystem by the Agruni team.