Skip to content

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.

Notifications You must be signed in to change notification settings

heet077/Event_Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 AVD Decoration Application

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.

Flutter Node.js PostgreSQL License

🌟 Overview

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.

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Flutter      β”‚    β”‚   Node.js       β”‚    β”‚   PostgreSQL    β”‚
β”‚   Frontend     │◄──►│   Backend       │◄──►│   Database      β”‚
β”‚   (Mobile/Web) β”‚    β”‚   (Express.js)  β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frontend (Flutter)

  • Cross-platform: iOS, Android, Web
  • State Management: Riverpod
  • UI Framework: Material Design 3
  • Architecture: Clean Architecture with MVVM pattern

Backend (Node.js)

  • Runtime: Node.js with Express.js
  • Database: PostgreSQL
  • Authentication: JWT with bcrypt
  • File Upload: Multer for image/document handling
  • Validation: Joi schema validation

πŸš€ Features

🎯 Core Functionality

  • 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

πŸ“± Frontend Features

  • 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

πŸ”§ Backend Features

  • 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

πŸ“ Project Structure

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

πŸ› οΈ Technology Stack

Frontend

  • 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

Backend

  • 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

Database

  • Primary: PostgreSQL
  • Features: ACID compliance, JSON support
  • Extensions: UUID, advanced indexing

πŸ“‹ Prerequisites

System Requirements

  • 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

Development Tools

  • Git: Version control
  • VS Code or Android Studio: IDE with Flutter extensions
  • Postman or Insomnia: API testing

Software Requirements

  • 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

πŸš€ Quick Start

1. Clone the Repository

git clone https://github.com/yourusername/avd_decoration_frontend_app.git
cd avd_decoration_frontend_app

2. Backend Setup

cd Backend
npm install
cp .env.example .env
# Edit .env with your database credentials
npm run setup
npm run dev

3. Frontend Setup

cd Frontend
flutter pub get
flutter run

4. Database Setup

# Create PostgreSQL database
createdb avd_decoration_db

# Run migrations (if any)
psql -d avd_decoration_db -f Backend/setup-decorationapp.js

πŸ”§ Configuration

Environment Variables

Create .env files in both Frontend and Backend directories:

Backend (.env)

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=./uploads

Frontend (.env)

API_BASE_URL=http://localhost:3000/api

Database Configuration

  • Host: localhost
  • Port: 5432
  • Database: avd_decoration_db
  • User: Your PostgreSQL username
  • Password: Your PostgreSQL password

πŸ“± Usage

Authentication

  1. Launch the Flutter app
  2. Navigate to Login screen
  3. Enter credentials (admin/user)
  4. Access role-based features

Event Management

  1. Create new events with details
  2. Upload cover and design images
  3. Track event costs and materials
  4. Manage event templates

Inventory Management

  1. Add inventory items with images
  2. Track stock levels
  3. Issue items to users
  4. Monitor return dates

Cost Tracking

  1. Record event expenses
  2. Upload cost documents
  3. Generate financial reports
  4. Track yearly budgets

πŸ§ͺ Testing

Frontend Testing

cd Frontend
flutter test                    # Unit tests
flutter test test/widget_test.dart  # Widget tests
flutter drive --target=test_driver/app.dart  # Integration tests

Backend Testing

cd Backend
npm test                       # Unit tests
npm run test:integration       # Integration tests
npm run test:coverage          # Coverage report

API Testing

  • Use Postman or Insomnia
  • Import API collection from docs/
  • Test all endpoints with sample data

πŸš€ Deployment

Backend Deployment

cd Backend
npm run build
npm start

Frontend Deployment

Android APK

cd Frontend
flutter build apk --release
flutter install

iOS App Store

cd Frontend
flutter build ios --release
# Archive in Xcode and upload to App Store Connect

Web Deployment

cd Frontend
flutter build web --release
# Deploy to Firebase Hosting, Netlify, or your web server

Production Considerations

  • 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

πŸ“Š API Documentation

Base URL

http://localhost:3000/api

Authentication

POST /auth/login
POST /auth/logout
GET  /auth/profile

Events

GET    /events
POST   /events
GET    /events/:id
PUT    /events/:id
DELETE /events/:id

Inventory

GET    /inventory
POST   /inventory
GET    /inventory/:id
PUT    /inventory/:id
DELETE /inventory/:id

Materials

GET    /materials
POST   /materials
GET    /materials/:id
PUT    /materials/:id
DELETE /materials/:id

Costs

GET    /costs
POST   /costs
GET    /costs/:id
PUT    /costs/:id
DELETE /costs/:id

For detailed API documentation, see Backend/API_DOCUMENTATION.md

πŸ” Security Features

  • 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

πŸ“ˆ Performance Optimization

Frontend

  • Lazy Loading: On-demand widget loading
  • Image Caching: Efficient image management
  • State Management: Optimized Riverpod providers
  • Memory Management: Proper disposal of resources

Backend

  • Database Indexing: Optimized query performance
  • Connection Pooling: Efficient database connections
  • File Compression: Optimized file handling
  • Caching: Redis integration (optional)

πŸ› Troubleshooting

Common Issues

Frontend

  1. Build Errors

    flutter clean
    flutter pub get
    flutter run
  2. Dependency Issues

    flutter doctor
    flutter pub deps

Backend

  1. Database Connection

    # Check PostgreSQL service
    sudo systemctl status postgresql
    
    # Test connection
    psql -h localhost -U username -d database_name
  2. Port Conflicts

    # Check port usage
    netstat -tulpn | grep :3000
    
    # Kill process using port
    kill -9 <PID>

Debug Mode

# Frontend
flutter run --debug

# Backend
NODE_ENV=development npm run dev

Logs

  • Frontend: Flutter DevTools
  • Backend: Console logs and log files
  • Database: PostgreSQL logs

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow Flutter and Dart style guides
  • Use meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Follow the existing code structure

Code Style

  • Frontend: Flutter lint rules
  • Backend: ESLint configuration
  • Database: PostgreSQL naming conventions

πŸ“„ License

This project is licensed under the ISC License - see the LICENSE file for details.

πŸ‘₯ Team

  • Frontend Development: Flutter Team
  • Backend Development: Node.js Team
  • Database Design: Database Team
  • UI/UX Design: Design Team
  • Project Management: PM Team

πŸ“ž Support & Contact

Getting Help

  • πŸ“– Documentation: Check the docs folder
  • πŸ› Issues: Create an issue on GitHub
  • πŸ’¬ Discussions: Use GitHub Discussions
  • πŸ“§ Email: [email protected]

Community

  • GitHub Issues: Bug reports and feature requests
  • GitHub Discussions: Questions and community support
  • Wiki: Additional documentation and guides

πŸ”„ Version History

  • 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

🎯 Roadmap

Upcoming Features

  • Real-time notifications
  • Advanced reporting dashboard
  • Mobile app store deployment
  • Cloud file storage integration
  • Multi-language support
  • Advanced analytics

Long-term Goals

  • AI-powered cost optimization
  • Integration with accounting software
  • Customer portal
  • Vendor management system
  • Advanced inventory forecasting

πŸ™ Acknowledgments

  • 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

⭐ Star this repository if you find it helpful!

GitHub stars GitHub forks GitHub issues

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •