Skip to content

Repository files navigation

Smart-Panchayat-app

Smart Panchayat is a digital solution designed to modernize and streamline Panchayat-level governance. It aims to provide a centralized platform for managing village-level administration, public services, and citizen engagement. The project focuses on digitizing records, improving service delivery, and enhancing transparency through technology.


🖼️ Screenshots & Demo


✨ Features

  • User Management (CRUD operations, role-based access control)
  • Shop Management (add, update, view shops)
  • Product Management (add, update, delete, view products; manage product categories)
  • Order Management (add, update, view order history)
  • Shipment Management (Track shipments, add shops to shipments, manage shipment products)
  • Category Management (add, update, delete categories)
  • Agent Management (CRUD operations)
  • Secure Authentication (Firebase authentication)
  • Robust Data Validation (using Joi)
  • Detailed Logging (using Winston)
  • AWS S3 Integration for file storage
  • Database Migrations (using Sequelize)
  • Unit Tests for various services

📂 Project Structure

SmartPanchayat-App/
├── .expo/                         # Expo internal files (auto-generated)
├── .vscode/                       # VS Code workspace settings
├── android/                       # Android native project (Expo prebuild)
├── node_modules/
│
├── src/
│   ├── app/                       # Expo Router (file-based routing)
│   │   ├── (agent)/               # Agent flow routes
│   │   ├── (shop)/                # Shop flow routes
│   │   ├── (tabs)/                # User flow
│   │   │
│   │   ├── auth/                  # Authentication screens
│   │   ├── location/              # Location-related screens
│   │   ├── order/                 # Order screens
│   │   ├── product/               # Product screens
│   │   ├── profile/               # User profile screens
│   │   ├── search/                # Search screens
│   │   ├── settings/              # App settings screens
│   │   ├── shipment/              # Shipment screens
│   │   ├── user/                  # User-related screens
│   │   │
│   │   ├── _layout.tsx             # Root layout (navigation wrapper)
│   │   ├── +not-found.tsx          # 404 / fallback screen
│   │   ├── index.tsx               # App entry screen
│   │   ├── ThemeBridge.tsx         # Theme ↔ navigation bridge
│   │   └── ThemeContext.tsx        # Theme context provider
│   │
│   ├── assets/                    # Images, fonts, icons
│   │
│   ├── components/                # Reusable UI components
│   │   ├── category/
│   │   ├── drawer/
│   │   ├── farmers/
│   │   └── ...
│   │
│   ├── constants/                 # App-wide constants
│   │   ├── colors.ts
│   │   ├── fonts.ts
│   │   ├── sizes.ts
│   │   └── routes.ts
│   │
│   ├── data/                      # Static/mock data
│   │
│   ├── hooks/                     # Custom React hooks
│   │   ├── useAuth.ts
│   │   ├── useTheme.ts
│   │   └── useNetwork.ts
│   │
│   ├── locales/                   # i18n / translations
│   │   ├── English.json
│   │   └── Kannada.json
│   │
│   ├── redux/                     # Redux Toolkit store
│   │   ├── feature/               # Feature-based slices
│   │   │   ├── category/
│   │   │   │   ├── categorySlice.ts
│   │   │   │   └── categoryActions.ts
│   │   │   │
│   │   │   ├── order/
│   │   │   ├── products/
│   │   │   ├── shipments/
│   │   │   ├── shop/
│   │   │   └── user/
│   │   │
│   │   └── store.ts               # Redux store configuration
│   │
│   ├── scripts/                   # Utility scripts (build, clean, etc.)
│   │
│   ├── styles/                    # Global styles & themes
│   │   └── global.css
│   │
│   └── utils/                     # Helper functions
│       ├── secureAuth.ts             # AsyncStorage helpers
│       ├── i18n.ts
│       └── responsive.ts
│
├── .gitignore
├── app.json                       # Expo app configuration
├── babel.config.js                # Babel config
├── eas.json                       # Expo Application Services config
├── eslint.config.js               # ESLint rules
├── expo-env.d.ts                  # Expo TypeScript types
├── metro.config.js                # Metro bundler config
├── package.json
└── README.md

🛠️ Tech Stack

    1. Framework
    • React Native
    • Expo
    • Expo Router
    1. State Management
    • Redux (Redux Toolkit)
    1. Authentication
    • Firebase OTP authentication
    1. Storage
    • Expo SecureStore (secure token storage)
    • AsyncStorage (language preference & theme storage)
    1. Multi Language
    • i18n
    1. Networking
    • axios

Local Installation

1. Clone the repository

git clone <repository-url>
cd <project-folder>

2. Install dependencies

npm install

3. Start the Expo development server

npx expo start

4. Run the app

# Android
npx expo start --android

# iOS (macOS only)
npx expo start --ios

5. Run EsLint

npm run lint

6. Build the app (optional)

# Android build
npx expo run:android

# iOS build
npx expo run:ios

About

Smart Panchayat is a digital solution designed to modernize and streamline Panchayat-level governance. It aims to provide a centralized platform for managing village-level administration, public services, and citizen engagement. The project focuses on digitizing records, improving service delivery, and enhancing transparency through technology.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages