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.
- Secure and streamlined access for users
- Firebase Authentication for login/sign-up
- Session management with role-based access
- AI categorization of images, videos.
- Sentiment analysis from feedback
- Upload images, videos with complaints
- Integrated ExoPlayer for video playback
- Cloudinary integration for secure media storage
- Live tracking of complaint status
- Notifications for every complaint update
- Unique complaint ID generation for easy reference
- Context-aware suggestions during complaint registration
- Help and support via conversational AI
- Material Design components
- Dark mode support
- Feedback form with sentiment analysis
- Helps improve the quality of service
- Firebase Cloud Messaging (FCM) integration
- Notifications for new complaints, status changes.
- View and filter complaints
- Access complaint media and metadata
- Receive real-time user submissions
- Update status: Pending β In Progress β Resolved
- Notify users of updates in real time
- Department-wise resolution performance
- Category-wise complaint breakdown (e.g., cleanliness, staff behavior)
- Frequent complaint types to understand recurring issues
- Analyze user-submitted feedback using AI
- Generate satisfaction score per complaint
| 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 |
git clone https://github.com/Omkarsanap-19/Rail-Madad.gitOpen Android Studio β File β Open β Select the cloned project folder.
- Go to Firebase Console
- Select your project or create a new one
- Navigate to Project Settings β General
- Download the
google-services.jsonfile - Place it inside the
/appdirectory of your project
β This will enable Firebase Authentication, Firestore, Realtime Database, and FCM.
-
Create a Cloudinary account: https://cloudinary.com
-
From your Dashboard, get the following credentials:
cloud_nameapi_keyapi_secret
-
Open
MyApplication.kt(inside your base package, e.g.,com.example.railmadad) -
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)
}
}- Go to Google AI Studio
- Create a project and generate a Gemini API Key
- In your code (e.g.,
GeminiChatService.kt), locate where you instantiate theGenerativeModel - Add your API key like this:
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = "YOUR_GEMINI_API_KEY"
)- Go to Hugging Face and log in
- Navigate to your Settings β Access Tokens and generate a new token
- In your Kotlin class where you perform the API call (e.g.,
RetrofitInstance.kt), include the token:
- Sync your project with Gradle files
- Build and run the app on an emulator or physical device
- Ensure all permissions are granted for notification, storage, and internet access
- 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.
- 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.
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.
- Fork the repository
- Create a new branch
git checkout -b feature/your-feature-name
- Make your changes
- Commit your changes
git commit -m "Add: Brief description of your changes" - Push to your branch
git push origin feature/your-feature-name
- Open a Pull Request on the main repository with a clear description of your changes
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
This project is licensed under the MIT License. See the MIT file for details.
For questions, suggestions, or collaborations, feel free to reach out:
- π§ Email: omkar@gmail.com
- π GitHub: @Omkarsanap-19
- πΌ LinkedIn: Omkar Sanap
We'd love to hear from you!











