RoadAssist

Privacy policy.

Effective 15 October 2026 · updated 21 October 2026 · RoadAssist Bharat

This is a working demo, not an emergency service. In an emergency in India, call 112. The live demo does not contact the police, an ambulance or any responder, and its SMS alerts are only written to a log, not sent.

RoadAssist Bharat is a student project: a roadside-assistance and road-safety platform built for a university course and run as a public demo. This policy covers the web app and the consoles at app.roadassistbharat.online, the RoadAssist Bharat Android app, the RoadAssist Telegram bot, and the project page at roadassistbharat.online. Everything below describes what the code actually does. Where a feature is off on the live demo, it says so.

The short version

Who runs it

The RoadAssist Bharat project team, a group of students (see the team on the project page). There is no company behind it. We decide what the platform collects and why, so we are responsible for your data under India's Digital Personal Data Protection Act, 2023. The way to reach us is in Contact.

What we collect, from whom, and why

Your phone number

From you, when you sign in with a one-time code, or when you add a number after signing in with Google. Why: it identifies your account, and once a mechanic is assigned to your booking, it lets them call you (and you them). The sign-in code is stored only as a hash, together with the number and the IP address that asked for it, so repeated attempts can be limited.

On the live demo only the published demo numbers can sign in by phone, and the code appears on screen because no SMS gateway is connected. A demo-number account is therefore shared with anyone who types the same number. Your own number is refused there.

Your Google account id and verified email, only if you use Google

From Google, at your request, when you press Continue with Google or Link Google. We ask Google only for openid and email. We store two things: the account's permanent id (Google calls it sub) and the email address Google says it has verified. Google's screen may mention your name and profile picture; we do not store them, and we never see your password, contacts, files or anything else in your Google account.

Why: the id is how a later Google sign-in finds your account, and the email is shown in Settings so you can see which Google account is linked. The email is never used to contact you, never used to find or merge accounts, and never shared. Information received from Google is used only for signing in, as the Google API Services User Data Policy requires, including its Limited Use requirements.

Your name, language and vehicles, if you give them

From you. A name (optional) is shown to the mechanic who comes to help, and the first word of it is used in Telegram alerts to your contacts. Your app language is kept on your device; a language you choose by text message is stored with your account. For a vehicle: its registration number, type, an optional nickname and odometer reading, and, if you add them, the type and expiry date of its documents (for example insurance), so the app can remind you before they expire. Why: to book the right kind of help for the right vehicle.

Your location

Only when you use a feature that needs it, and only with your browser's or phone's location permission. The app does not track you in the background.

  • SOS: the position your device reports at that moment, at the precision it reports, is stored with the emergency record. If there is no fix, the SOS is sent and stored without one rather than with a guess.
  • Booking help: the position (or an address you type) is stored with the booking, so a mechanic can find you.
  • Hazard report: the position and the accuracy radius your device gives are stored with the report.
  • "Near you", addresses and road distances: your position is sent to our server, which rounds it before asking a map service (see Who receives it). It is not saved in our database, and the server's logs leave it out (see Logs).
  • Mechanic accounts: a mechanic's position is stored while they are on duty, so jobs can be offered to the nearest one.

Emergency contacts

From you, about other people: up to five contacts, each with a name, a phone number and an optional relation. Please tell them before you add them. Why: when you confirm an SOS they are sent a text with a link. On the live demo that text is only logged, not sent, and the app says so.

Telegram chat ids of contacts who opt in

When Telegram alerts are switched on, you can send a contact a one-time invite link. Only if they open it and press Start do we store their Telegram chat id against that contact. We never receive their Telegram phone number. Invite codes are stored only as a hash and expire after seven days. Why: to send that contact a free alert when you confirm an SOS: your first name, the incident reference, the time and your position as a map link, in the language your app is set to. We also store the language the invite was made in, so the bot answers your contact in it. Sending /stop to the bot removes the chat id from every contact entry it is on.

Medical notes, if you add them

Blood group, allergies, conditions and medications, all optional. Only you can read them, plus an administrator or officer during your own live emergency, who must write down a reason; every such read is recorded, shown in your own access log, and texted to you where SMS is connected. They are protected by these access rules and the record, not by a separate layer of encryption in our database.

Photos and hazard reports

A report holds the hazard type, a severity, an optional note (up to 280 characters), the position, an optional photo (shrunk on your device before upload), and the name and confidence of the on-device detector if one suggested it. Why: so road authorities can verify and fix the hazard. The type, severity, status and position appear on the live map to signed-in users, without your name, number or photo. The photo is visible only to you and to administrator and officer accounts.

The road scan runs its detector on your device. Camera frames do not leave your device unless you attach one to a report. Photos you send are not used to train the detection models, which were trained on public road-damage datasets.

Bookings, payments and mechanics

A booking stores the service, the vehicle, the location and address, the problem you describe, its status history, the quote, the invoice and any rating or review you give. The assigned mechanic sees your name, your number, the vehicle, the problem and where you are. On the live demo the mechanics are simulated accounts, so nobody will come, and payments are simulated: no money moves. If a real payment gateway is configured, card and UPI details are entered on the gateway's own page and never reach our server.

For mechanic accounts we store a display name, phone number, availability, skills, position while on duty, completed jobs and ratings.

Device and session data

Each sign-in session stores the IP address and browser or app description (user agent) it started from, a hash of its refresh token and its expiry. Why: to keep you signed in, to make signing out end the session on the server, and to detect a stolen token.

In your browser the app keeps a ten-minute access token for the open tab, a 30-day sign-in cookie that page scripts cannot read, your theme and language, requests waiting for a connection, and any SOS raised with no signal (encrypted on the device, and deleted 24 hours after it reaches us). It also caches app files and map tiles so it works offline. The Android app stores its session encrypted with a key held in Android's Keystore, and its data is excluded from device backups.

Logs and the audit record

Server logs: for each request, the method, the path, the response status and timing. Not your IP address, and not the query string: only a few keys that are never personal (such as a page size) are kept, so the coordinates of a map lookup never reach the log, and a map square is logged by its zoom level only. Sign-in codes, tokens and request bodies are not logged. Every log line is also scrubbed of phone numbers (cut to the last four digits), email addresses, coordinates, Telegram chat ids, tokens and the values of a failed database statement. Where an address helps stop abuse (a "too many requests" line), it is cut to its network (the first three parts of an IPv4 address, shared by up to 256 addresses). On the live demo the text messages that would have been sent are logged with the number cut to its last four digits and any sign-in code hidden.

Audit record: sign-ins, SOS events, booking changes, Telegram links and similar actions are written to a tamper-evident log with the account id, role, action, time and IP address.

Operator alerts: the project owner is emailed when someone signs in or confirms an SOS, or one raised with no signal arrives: the phone number cut to its last three digits, a role, the event and the time. Never a name, position, IP address or device.

Text messages to the RoadAssist number

When an SMS gateway is connected (it is not on the live demo), people can raise an SOS or ask for help by text. We then store the sending number and act on the message. If a number texts STOP, we record that and stop texting it.

Where it is stored

The live demo runs on Render (application server, Singapore region) with a Neon Postgres database (Singapore, ap-southeast-1). Requests reach Render through Cloudflare's network. Your data is therefore stored and processed outside India, because those providers' free plans offer no Indian region. Moving to an Indian region has been prepared but is not live. The project page at roadassistbharat.online is served by GitHub Pages, which sees the IP address of anyone who visits it.

Who receives it

We never sell your data. There are no adverts, no analytics, no tracking pixels, no crash reporters and no social-media widgets, in the web app or the Android app. Our web pages load nothing from any other website: fonts, maps and scripts all come from our own server, so your browser does not contact a third party just by opening a page. No AI or language-model service receives your data: the road detector runs on your device.

Our server, not your browser, contacts these services, so they never see your IP address. Each receives only what is listed:

People who see your data because of what you do: the mechanic assigned to your booking (above), your emergency contacts when you confirm an SOS, and administrator and officer accounts that review hazard reports and run the platform. On the live demo no real road authority or responder is connected.

We would disclose data to a government authority only where Indian law requires it.

How long it is kept

Plainly: most data has no automatic deletion yet. Your account, name, vehicles, contacts, medical notes, bookings, emergency records, hazard reports, sessions and sign-in code records stay in the database until you delete your account (see Your rights) or we delete them by hand. What does get removed on its own:

The audit record is append-only by design: its entries cannot be edited or deleted, even by us through the app. Server logs are kept by Render for the period its plan provides; we do not copy them anywhere else.

Your choices and your rights

What you can do in the app

What you have to ask us for

There is no button yet to download a copy of your data. Ask us and we will do it by hand. Mechanic, administrator, operator and RAKSHA officer accounts, and accounts that sign in by email, cannot delete themselves from the app, because they hold other people's work (jobs, reviews, verified hazards, registered devices): ask us and we will delete them by hand, the same way.

India's data protection law

Under the Digital Personal Data Protection Act, 2023 you can ask what personal data we hold about you and how it is used, have it corrected, completed or erased, withdraw consent, have a grievance answered, and nominate someone to act for you if you cannot. We aim to honour these requests for this demo. We do not claim any compliance certification and have not appointed a data protection officer: this is a student project. If we do not resolve a grievance, you can complain to the Data Protection Board of India.

To make a request, open an issue as described in Contact. Please do not post your phone number or other personal details in the issue: say what you want, and we will reply there to arrange how to confirm the account is yours.

Children

RoadAssist Bharat is not intended for anyone under 18, and we do not knowingly collect children's data. If you are under 18, please do not create an account. If you believe a child has given us personal data, tell us and we will delete it.

Security

Connections are encrypted (HTTPS). Sign-in codes, refresh tokens and invite codes are stored only as hashes. Pages run under a strict content security policy, requests are rate-limited, and the server connects to the database with an account that cannot change its structure or rewrite the audit record. No system is perfectly secure, and this is a demo: please do not store anything in it that would harm you if it were exposed.

Changes to this policy

When the platform changes what it collects or where data goes, we update this page and its effective date. Earlier versions are kept in the project's public source history.

Contact

Open an issue at github.com/saatwik-1157/roadassist-bharat/issues. Issues are public, so describe the request without personal details. See also the Terms of use.