Skip to content

liamsimfty/e_masjid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ•Œ E-Masjid - Digital Mosque Management System

A Muslim Community Application build with Flutter.

E-Masjid Logo

πŸ“± App Showcase

Home Ask Imam Rent Aula
Home Screen
Prayer times and quick access to services
Ask Imam
Direct questions to religious scholars
Rent Aula
Book Masjid facilities for events
Programs Donations Status
Programs
Masjid Program
Donations
Donations for Masjid
Check Status
Track donation, Ask Imam, rent place status
Quran Hadith Prayer
Quran
Read Al Quran
Hadith
Explore hadith arbain
Prayer Times
Collection of Doa

✨ Features

πŸ” Authentication & User Management

  • Secure login with google auth
  • Role-based access (Staff, Jamaah)
  • Password recovery

πŸ•Œ Core Mosque Services

  • Prayer Times: Real-time prayer schedules with notifications
  • Quran Digital: Complete Quran with search and bookmark features
  • Hadith Collection: Authentic hadith with search functionality
  • Ask Imam: Direct communication with religious scholars
  • Program Management: Program management
  • Facility Booking: Rent Place In Masjid facilities
  • Donation System: Secure digital donations

πŸ‘₯ Community Features

  • Program announcements
  • Ask Imam
  • Donation

πŸ› οΈ Administrative Tools

  • Program creation and management
  • Approval System

πŸ› οΈ Technology Stack

  • Framework: Flutter 3.x
  • Language: Dart
  • Backend: Firebase (Firestore, Cloudify)
  • State Management: Provider
  • Local Storage: Hive, SharedPreferences
  • UI Components: Material Design 3
  • Image Handling: Cloudinary
  • HTTP Client: Dio

πŸ“‹ Prerequisites

  • Flutter SDK (>=3.0.0)
  • Dart SDK (>=3.0.0)
  • Android Studio / VS Code
  • Firebase project setup
  • Cloudinary account

πŸš€ Installation

  1. Clone the repository

    git clone https://github.com/yourusername/e_masjid.git
    cd e_masjid
  2. Install dependencies

    flutter pub get
  3. Configure Firebase

    • Create a Firebase project
    • Add your google-services.json (Android) and GoogleService-Info.plist (iOS)
    • Enable Authentication and Firestore
  4. Configure Cloudinary

    • Create a Cloudinary account
    • Update the configuration in lib/services/cloudinary_service.dart
  5. Run the app

    flutter run

πŸ“± Platform Support

  • βœ… Android (API 21+)
  • βœ… iOS (12.0+)

πŸ—οΈ Project Structure

lib/
β”œβ”€β”€ animations/          # Custom animations
β”œβ”€β”€ config/             # App configuration
β”œβ”€β”€ mixins/             # Reusable mixins
β”œβ”€β”€ models/             # Data models
β”œβ”€β”€ providers/          # State management
β”œβ”€β”€ screens/            # UI screens
β”‚   β”œβ”€β”€ login/          # Authentication screens
β”‚   β”œβ”€β”€ modul_produktiviti/  # Productivity modules
β”‚   β”œβ”€β”€ modul_tanya/    # Q&A modules
β”‚   β”œβ”€β”€ petugas/        # Staff/admin screens
β”‚   └── quran/          # Quran-related screens
β”œβ”€β”€ services/           # Business logic
β”œβ”€β”€ utils/              # Utility functions
└── widgets/            # Reusable UI components

πŸ”§ Configuration

Firebase Setup

  1. Create a new Firebase project
  2. Enable Authentication (Email/Password, Google Sign-in)
  3. Create Firestore database
  4. Set up security rules
  5. Add configuration files to respective platform folders

Environment Variables

Create a .env file in the root directory:

CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret

πŸ“Š Features by User Role

πŸ‘€ Community Member

  • View prayer times
  • Read Quran and Hadith
  • Ask questions to Imam
  • Register for programs
  • Book facilities
  • Make donations
  • Track application status

πŸ‘¨β€πŸ’Ό Staff Member

  • Manage programs
  • Handle applications
  • Update announcements
  • Monitor donations
  • Manage facility bookings

🎨 UI/UX Features

  • Responsive Design: Works seamlessly across all device sizes
  • Smooth Animations: Flutter Staggered Animations for enhanced UX
  • Loading States: Shimmer effects and loading indicators

πŸ”’ Security Features

  • Firebase Authentication
  • Role-based access control
  • Secure API communication
  • Data encryption
  • Input validation

πŸ“ˆ Performance Optimizations

  • Lazy loading for Quran content
  • Image optimization with Cloudinary
  • Efficient state management
  • Memory management
  • Offline support with Hive

🀝 Contributing

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

πŸ“ License

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors