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
- We collect what the app needs to work: your phone number or Google account id, what you choose to enter (name, vehicles, emergency contacts, medical notes), and your location when you raise an SOS, book help or report a hazard.
- It is stored in Singapore (Render and Neon), not in India.
- We never sell it, show no ads and use no analytics or trackers. Our pages load nothing from any other website.
- Most records are kept until someone deletes them: there is no automatic deletion yet. A citizen account can delete itself in Settings (web) or More (Android); other accounts ask us (see Your rights).
- On the live demo, phone sign-in works only for published demo numbers, and the sign-in code is shown on screen, so anyone can open those accounts. Do not put real personal details into one.
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.
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:
- Removing an emergency contact or replacing a vehicle document hides the old row from the app; the row itself stays, marked as deleted.
- A hazard photo is deleted outright when an authority rejects its report.
- Google sign-in check values (one-time numbers, stored as hashes) are deleted a day after they expire.
- An emailed sign-in code that could not be delivered is deleted at once.
- On your device, an SOS saved with no signal is deleted 24 hours after it reaches us. One that never reached us is kept until it does.
- A refresh token stops working after 30 days, or when you sign out.
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
- See your profile, vehicles, contacts, bookings, emergencies, hazard reports, medical notes, and who has read your medical notes.
- Change or clear your name, edit your medical notes, add or remove emergency contacts, and replace a vehicle document's details.
- Sign out. This ends the session on the server too, not only on your device.
- Turn off location or camera access in your browser or phone settings. SOS still works without a position.
- Clear the site's data in your browser, or the app's storage in Android settings, to remove what is kept on your device.
- A contact who no longer wants Telegram alerts can send
/stopto the bot. When SMS is connected, texting STOP to the RoadAssist number stops texts to that number. - Unlink Google (Settings → Account on the web, More on Android). This removes the Google id and address we hold. It needs a verified phone number on the account first, so you can still sign in afterwards. Removing RoadAssist from your Google Account's connected apps (Google Account connections) also stops Google sharing with us in future.
- Delete your account (the same place), for a citizen account. You type
DELETE MY ACCOUNTto confirm, within 10 minutes of signing in (sign in again if it has been longer), with no booking or SOS still open. It happens at once, in one step:- Deleted: your emergency contacts with their Telegram links and invite codes, your Google link, your devices and push tokens, your medical notes, your vehicles' documents and your links to your vehicles, and the sign-in code records for your number. Every session is signed out.
- Removed from what stays: your phone number, name, email and Google id (so the number or the Google account can sign up again later, as a new and empty account), your vehicles' registration numbers and nicknames, the address, symptoms and position on your bookings, your review comments, and any note you typed into an SOS.
- Kept, with nothing that names you: your SOS records (for whoever responded; no longer linked to any account), your bookings, invoices and payments (the mechanic's record of work and money), the star ratings you gave (part of a mechanic's score), hazard reports (public road data, no longer linked to you), consent records (the record that we had a basis to process), and the audit record, which is append-only and refers to the account by an id that no longer leads to a person.
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.