Skip to content

omkodes/Rail-Madad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Rail Madad - AI-Powered Railway Complaint Resolution App

Rail Madad is an AI-powered complaint resolution app that enhances the Indian Railways' grievance system. It uses AI for image recognition, text extraction, classification, prioritization, and smart routing β€” even for complaints submitted via images or videos. This significantly reduces manual effort, speeds up resolution times, and improves overall user satisfaction for both passengers and railway administrators.

πŸ“‘ Table of Contents


✨ Features

πŸ‘€ User Features

πŸ” Authentication

  • Secure and streamlined access for users
  • Firebase Authentication for login/sign-up
  • Session management with role-based access

🧠 AI-Powered Complaint Submission

  • AI categorization of images, videos.
  • Sentiment analysis from feedback

πŸ–ΌοΈ Media Upload & Playback

  • Upload images, videos with complaints
  • Integrated ExoPlayer for video playback
  • Cloudinary integration for secure media storage

πŸ“¦ Complaint Tracking

  • Live tracking of complaint status
  • Notifications for every complaint update
  • Unique complaint ID generation for easy reference

πŸ€– AI Assistant

  • Context-aware suggestions during complaint registration
  • Help and support via conversational AI

🎨 UI & UX Enhancements

  • Material Design components
  • Dark mode support

πŸ“¬ Feedback

  • Feedback form with sentiment analysis
  • Helps improve the quality of service

πŸ”” Notifications

  • Firebase Cloud Messaging (FCM) integration
  • Notifications for new complaints, status changes.

πŸ› οΈ Admin Features

πŸ“₯ Complaint Management

  • View and filter complaints
  • Access complaint media and metadata
  • Receive real-time user submissions

🟒 Status Updates

  • Update status: Pending β†’ In Progress β†’ Resolved
  • Notify users of updates in real time

πŸ“Š Data Analytics

  • Department-wise resolution performance
  • Category-wise complaint breakdown (e.g., cleanliness, staff behavior)
  • Frequent complaint types to understand recurring issues

🧠 Feedback Analysis

  • Analyze user-submitted feedback using AI
  • Generate satisfaction score per complaint

Tech Stack

Category Technologies
Programming Languages Kotlin, XML
Frameworks & Architecture Android Studio, MVVM
Machine Learning & AI Google ML Kit (Image Labeling, OCR)
Gemini AI
Hugging Face Inference API
Media Handling ExoPlayer
Cloudinary
Glide
Networking & APIs Retrofit
Render
Node.js + Express
Database Firebase Realtime Database
Firebase Firestore
Room DB
Authentication Firebase Authentication
Notifications Firebase Cloud Messaging (FCM)
Charts & Analytics MP Android Charts
Permissions & Utilities Dexter

πŸš€ Setup and Installation

1️⃣ Clone the Repository

git clone https://github.com/Omkarsanap-19/Rail-Madad.git

Open Android Studio β†’ File β†’ Open β†’ Select the cloned project folder.

2️⃣ Configure Firebase

  1. Go to Firebase Console
  2. Select your project or create a new one
  3. Navigate to Project Settings β†’ General
  4. Download the google-services.json file
  5. Place it inside the /app directory of your project

βœ… This will enable Firebase Authentication, Firestore, Realtime Database, and FCM.

3️⃣ Set Up Cloudinary

  1. Create a Cloudinary account: https://cloudinary.com

  2. From your Dashboard, get the following credentials:

    • cloud_name
    • api_key
    • api_secret
  3. Open MyApplication.kt (inside your base package, e.g., com.example.railmadad)

  4. Initialize Cloudinary inside the onCreate() method:

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        val config = HashMap<String, String>()
        config["cloud_name"] = "your_cloud_name"
        config["api_key"] = "your_api_key"
        config["api_secret"] = "your_api_secret"
        MediaManager.init(this, config)
    }
}

πŸ€– 4️⃣ Set Up Gemini AI (Google AI)

  1. Go to Google AI Studio
  2. Create a project and generate a Gemini API Key
  3. In your code (e.g., GeminiChatService.kt), locate where you instantiate the GenerativeModel
  4. Add your API key like this:
val generativeModel = GenerativeModel(
    modelName = "gemini-1.5-flash",
    apiKey = "YOUR_GEMINI_API_KEY"
)

🧠 5️⃣ Set Up Hugging Face Inference API

  1. Go to Hugging Face and log in
  2. Navigate to your Settings β†’ Access Tokens and generate a new token
  3. In your Kotlin class where you perform the API call (e.g., RetrofitInstance.kt), include the token:

Run the App

  1. Sync your project with Gradle files
  2. Build and run the app on an emulator or physical device
  3. Ensure all permissions are granted for notification, storage, and internet access

πŸ“± Usage

πŸ‘€ For Users

  • Login with your email using Firebase Authentication.
  • Submit complaints by uploading images, videos, along with an optional description.
  • Track complaint status in real-time: Pending β†’ In Progress β†’ Resolved.
  • Get notifications for updates via Firebase Cloud Messaging (FCM).
  • Use the AI Assistant for help or general queries.
  • Submit feedback after resolution to help improve services.

πŸ› οΈ For Admins

  • Login to access the admin dashboard.
  • Review complaints with AI-generated categories
  • Update complaint statuses and notify users in real-time.
  • Access analytics for complaint trends, resolution performance, and heatmaps.
  • View feedback sentiment analysis for better planning.

πŸ“Έ Screenshots


🀝 Contributing

Contributions are welcome and appreciated! Whether it's reporting bugs, suggesting features, or submitting pull requests β€” your input helps make this project better for everyone.

🧩 How to Contribute

  1. Fork the repository
  2. Create a new branch
    git checkout -b feature/your-feature-name
  3. Make your changes
  4. Commit your changes
    git commit -m "Add: Brief description of your changes"
  5. Push to your branch
    git push origin feature/your-feature-name
  6. Open a Pull Request on the main repository with a clear description of your changes

πŸ› οΈ Contribution Areas

You can contribute to any of the following areas:

  • New features (AI improvements, UI enhancements, etc.)
  • PDF report generation of all complaints
  • Multi-language support for accessibility

πŸ”– License

This project is licensed under the MIT License. See the MIT file for details.

πŸ“¬ Contact

For questions, suggestions, or collaborations, feel free to reach out:

We'd love to hear from you!

About

Rail Madad is an AI-powered complaint resolution app for Indian Railways that uses media recognition and sentiment analysis to streamline complaint handling. Passengers can submit complaints with images or videos, track status in real time, and receive timely updates, while admins benefit from analytics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages