A comprehensive full-stack application for managing decoration events, inventory, materials, and costs. Built with Flutter frontend and Node.js backend, featuring modern architecture and robust state management.
AVD Decoration Application is a complete solution for decoration businesses to manage their events, track inventory, manage materials, and monitor costs. The application provides a user-friendly interface for both administrators and regular users, with comprehensive backend APIs for data management.
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Flutter β β Node.js β β PostgreSQL β
β Frontend βββββΊβ Backend βββββΊβ Database β
β (Mobile/Web) β β (Express.js) β β β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Cross-platform: iOS, Android, Web
- State Management: Riverpod
- UI Framework: Material Design 3
- Architecture: Clean Architecture with MVVM pattern
- Runtime: Node.js with Express.js
- Database: PostgreSQL
- Authentication: JWT with bcrypt
- File Upload: Multer for image/document handling
- Validation: Joi schema validation
-
User Management
- Authentication & Authorization
- Role-based access control (Admin/User)
- User profiles and settings
-
Event Management
- Create and manage decoration events
- Event templates and year management
- Cover and design image uploads
- Event cost tracking
-
Inventory Management
- Comprehensive inventory tracking
- Image upload for items
- Stock management and alerts
- Item issuance and return system
- Issue history tracking
-
Material Management
- Material inventory tracking
- Material issuance system
- Cost tracking per material
-
Cost Management
- Event cost tracking
- Yearly cost breakdown
- Cost document uploads
- Financial reporting
-
Gallery Management
- Image organization
- Event photo collections
- Design portfolio
- Responsive Design: Adaptive layouts for all screen sizes
- Theme System: Light/dark mode support
- Modern Navigation: Bottom navigation with intuitive routing
- Image Handling: Upload, preview, and management
- Real-time Updates: Live data synchronization
- Offline Support: Local data caching
- RESTful APIs: Comprehensive endpoint coverage
- File Management: Secure file upload and storage
- Data Validation: Input sanitization and validation
- Error Handling: Comprehensive error management
- Logging: Detailed operation logging
- Security: JWT tokens, role-based access
avd_decoration_frontend_app/
βββ Frontend/ # Flutter Application
β βββ lib/
β β βββ models/ # Data models
β β βββ providers/ # State management
β β βββ services/ # API services
β β βββ themes/ # App theming
β β βββ utils/ # Utility functions
β β βββ views/ # UI screens
β β βββ routes/ # App routing
β βββ assets/ # Images and resources
β βββ android/ # Android-specific files
β βββ ios/ # iOS-specific files
β βββ web/ # Web-specific files
β
βββ Backend/ # Node.js Server
β βββ controllers/ # Route controllers
β βββ models/ # Database models
β βββ routes/ # API routes
β βββ middlewares/ # Custom middlewares
β βββ services/ # Business logic
β βββ config/ # Configuration files
β βββ uploads/ # File storage
β βββ utils/ # Utility functions
β
βββ docs/ # Documentation
βββ scripts/ # Setup and utility scripts
βββ README.md # This file
- Framework: Flutter 3.6.2+
- Language: Dart 3.0.0+
- State Management: Riverpod 2.5.1
- HTTP Client: Dio 5.8.0+, HTTP 1.2.1
- Storage: Shared Preferences, Flutter Secure Storage
- Image Handling: Image Picker, Photo View
- PDF: PDF generation and printing
- Navigation: Custom routing system
- Runtime: Node.js 18+
- Framework: Express.js 4.18.2
- Database: PostgreSQL 13+
- ORM: Custom query builders
- Authentication: JWT, bcrypt
- File Upload: Multer
- Validation: Joi
- CORS: Cross-origin resource sharing
- Primary: PostgreSQL
- Features: ACID compliance, JSON support
- Extensions: UUID, advanced indexing
- Operating System: Windows 10+, macOS 10.15+, or Ubuntu 18.04+
- RAM: Minimum 8GB (16GB recommended)
- Storage: 10GB free space
- Network: Internet connection for dependencies
- Git: Version control
- VS Code or Android Studio: IDE with Flutter extensions
- Postman or Insomnia: API testing
- Flutter SDK: 3.6.2 or higher
- Dart SDK: 3.0.0 or higher
- Node.js: 18.0.0 or higher
- npm or yarn: Package managers
- PostgreSQL: 13.0 or higher
git clone https://github.com/yourusername/avd_decoration_frontend_app.git
cd avd_decoration_frontend_appcd Backend
npm install
cp .env.example .env
# Edit .env with your database credentials
npm run setup
npm run devcd Frontend
flutter pub get
flutter run# Create PostgreSQL database
createdb avd_decoration_db
# Run migrations (if any)
psql -d avd_decoration_db -f Backend/setup-decorationapp.jsCreate .env files in both Frontend and Backend directories:
NODE_ENV=development
PORT=3000
DB_HOST=localhost
DB_PORT=5432
DB_NAME=avd_decoration_db
DB_USER=your_username
DB_PASSWORD=your_password
JWT_SECRET=your_jwt_secret_key
UPLOAD_PATH=./uploadsAPI_BASE_URL=http://localhost:3000/api- Host: localhost
- Port: 5432
- Database: avd_decoration_db
- User: Your PostgreSQL username
- Password: Your PostgreSQL password
- Launch the Flutter app
- Navigate to Login screen
- Enter credentials (admin/user)
- Access role-based features
- Create new events with details
- Upload cover and design images
- Track event costs and materials
- Manage event templates
- Add inventory items with images
- Track stock levels
- Issue items to users
- Monitor return dates
- Record event expenses
- Upload cost documents
- Generate financial reports
- Track yearly budgets
cd Frontend
flutter test # Unit tests
flutter test test/widget_test.dart # Widget tests
flutter drive --target=test_driver/app.dart # Integration testscd Backend
npm test # Unit tests
npm run test:integration # Integration tests
npm run test:coverage # Coverage report- Use Postman or Insomnia
- Import API collection from
docs/ - Test all endpoints with sample data
cd Backend
npm run build
npm startcd Frontend
flutter build apk --release
flutter installcd Frontend
flutter build ios --release
# Archive in Xcode and upload to App Store Connectcd Frontend
flutter build web --release
# Deploy to Firebase Hosting, Netlify, or your web server- Environment Variables: Secure production credentials
- Database: Production PostgreSQL instance
- File Storage: Cloud storage (AWS S3, Google Cloud)
- SSL: HTTPS certificates
- Monitoring: Application performance monitoring
- Backup: Regular database backups
http://localhost:3000/api
POST /auth/login
POST /auth/logout
GET /auth/profile
GET /events
POST /events
GET /events/:id
PUT /events/:id
DELETE /events/:id
GET /inventory
POST /inventory
GET /inventory/:id
PUT /inventory/:id
DELETE /inventory/:id
GET /materials
POST /materials
GET /materials/:id
PUT /materials/:id
DELETE /materials/:id
GET /costs
POST /costs
GET /costs/:id
PUT /costs/:id
DELETE /costs/:id
For detailed API documentation, see Backend/API_DOCUMENTATION.md
- JWT Authentication: Secure token-based authentication
- Role-based Access Control: Admin and user permissions
- Input Validation: Request sanitization and validation
- SQL Injection Prevention: Parameterized queries
- File Upload Security: File type and size validation
- HTTPS: Secure communication (production)
- Password Hashing: bcrypt encryption
- Lazy Loading: On-demand widget loading
- Image Caching: Efficient image management
- State Management: Optimized Riverpod providers
- Memory Management: Proper disposal of resources
- Database Indexing: Optimized query performance
- Connection Pooling: Efficient database connections
- File Compression: Optimized file handling
- Caching: Redis integration (optional)
-
Build Errors
flutter clean flutter pub get flutter run
-
Dependency Issues
flutter doctor flutter pub deps
-
Database Connection
# Check PostgreSQL service sudo systemctl status postgresql # Test connection psql -h localhost -U username -d database_name
-
Port Conflicts
# Check port usage netstat -tulpn | grep :3000 # Kill process using port kill -9 <PID>
# Frontend
flutter run --debug
# Backend
NODE_ENV=development npm run dev- Frontend: Flutter DevTools
- Backend: Console logs and log files
- Database: PostgreSQL logs
We welcome contributions! Please follow these steps:
- 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
- Follow Flutter and Dart style guides
- Use meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Follow the existing code structure
- Frontend: Flutter lint rules
- Backend: ESLint configuration
- Database: PostgreSQL naming conventions
This project is licensed under the ISC License - see the LICENSE file for details.
- Frontend Development: Flutter Team
- Backend Development: Node.js Team
- Database Design: Database Team
- UI/UX Design: Design Team
- Project Management: PM Team
- π Documentation: Check the docs folder
- π Issues: Create an issue on GitHub
- π¬ Discussions: Use GitHub Discussions
- π§ Email: [email protected]
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: Questions and community support
- Wiki: Additional documentation and guides
- v2.0.0 - Full-stack application with Flutter frontend and Node.js backend
- v1.5.0 - Enhanced inventory management and cost tracking
- v1.0.0 - Initial release with basic functionality
- Real-time notifications
- Advanced reporting dashboard
- Mobile app store deployment
- Cloud file storage integration
- Multi-language support
- Advanced analytics
- AI-powered cost optimization
- Integration with accounting software
- Customer portal
- Vendor management system
- Advanced inventory forecasting
- Flutter Team for the amazing framework
- Node.js Community for backend tools and libraries
- PostgreSQL Team for the robust database
- Open Source Contributors for various packages used