Files
mobile-darmasaba/GEMINI.md
amaliadwiy d3802ca26c upd: redesign
Deskripsi:
- fitur ganti mode tema
- penerapan tema pada semua fitur

NO Issues
2026-02-09 17:49:25 +08:00

2.6 KiB

Project Overview: Desa+

Desa+ is a mobile application built with React Native and Expo, designed to facilitate management and communication within villages/communities. It aims to streamline village administration, inter-community communication, and the management of essential information.

Key Features:

  • Village announcements and information
  • Community discussion forum
  • Village activity calendar
  • Village documentation and archives
  • Project and task management
  • Member and organizational structure management
  • Push notifications for important updates
  • Verification and authentication features

Technologies Used:

  • React Native: Cross-platform mobile development framework.
  • Expo: Platform for React Native application development.
  • Firebase: Backend services including Authentication, Realtime Database, and Cloud Messaging.
  • Redux Toolkit: State management.
  • React Navigation: Application navigation.
  • TypeScript: For type safety.

Building and Running:

Installation

  1. Clone the repository:
    git clone <repository-url>
    cd mobile-darmasaba
    
  2. Install dependencies:
    npm install
    
  3. Configure environment variables: Create a .env file in the root directory and add the following variables:
    URL_API=<api-endpoint>
    URL_OTP=<otp-service-endpoint>
    URL_STORAGE=<storage-endpoint>
    URL_FIREBASE_DB=<firebase-database-url>
    PASS_ENC=<encryption-password>
    WA_SERVER_TOKEN=<whatsapp-server-token>
    IOS_GOOGLE_SERVICES_FILE=<path-to-ios-google-services>
    

Running the Application

  • Start development server:
    npx expo start
    
  • Run on Android emulator/device:
    npm run android
    
  • Run on iOS simulator/device:
    npm run ios
    

Build Production

  • Build Android production package:
    npm run build:android
    

Development Conventions:

Project Structure:

  • app/: Main page files.
  • components/: Reusable UI components, categorized by feature (e.g., announcement/, auth/, discussion/).
  • assets/: Images and static assets.
  • constants/: Global constants.
  • lib/: Libraries and utilities.

Contribution Guidelines:

  1. Fork the repository.
  2. Create a new feature branch (git checkout -b feature/FeatureName).
  3. Commit your changes (git commit -m 'Add FeatureName feature').
  4. Push to the branch (git push origin feature/FeatureName).
  5. Create a pull request.

Platform Support:

  • Android
  • iOS
  • Web (not yet optimized)