You are browsing as a guest. Sign up (or log in) to start making projects!

App to help Seniors protect themselves against scams in India

  • 7 Devlogs
  • 30 Total hours

Scam protection for elderly parents and grandparents, with a family member in the loop. Built first for India, with United States support added later for the same scam patterns under their US names.

Ship #1 Pending review

KinGuard - An app to protect seniors against everyday scams. My grandfather was one of the victims of a scam. When I heard about the incident from him, I started researching these scams. Impersonation scams & threatening calls were on the rise and there was no good medium that could help educate seniors and protect them against the scams. This was my inspiration to create an app that would serve the senior community.
I initially built this for scams in India and in the latest release I’ve included a US module as similar scams are on the rise here too.

The design of the app was the most challenging aspect. What I set out to do was make an app which was graphical and icon based with accessibility options. The end goal was to make it very easy to use for seniors.
Testing the features was another challenge as it needed 2 phones or a phone and a browser combination. I learnt a lot creating and integrating multi language support(English, Hindi, Kannada, Telugu and Tamil).
I’m proud that I was able to officially launch the app on the Google Play Store and have 13 users within a short space of time. My grandfather has the app too and he appreciated the thought and the ease with which it can be used. KinGuard is very easy to install and use. https://mykit.pythonanywhere.com/how-it-works explains how to use the app. The family member downloads the app through the Google Play Store or by opening it from https://mykit.pythonanywhere.com and adding it to home screen, complete registration and finishes setup. The app gives a private link to share with the elder. The elder opens this link on the phone and it pairs with the family. A single tester can use a combination of one device and browser window or two browser windows.

  • 7 devlogs
  • 30h
Try project → See source code →
Open comments for this post

3h 10m 26s logged

Continued Devlog on Password reset deploy to Production
I tested the password reset functionality again to ensure it does not break Production.
Pushed my changes to GitHub repo
Copied the changed files over to pythonanywhere
checked each one against the repo with md5sum
set the new Gmail SMTP settings in the WSGI file
Reloaded the application
The first real password reset email failed with a 535 “Username and Password not accepted” message
After a fair bit of troubleshooting I realized I had copied the wrong password in the WSGI file(from a different gmail account)
Recreated the password from the right account and updated the WSGI file
Reloaded the application
Tested the full password reset workflow
Got the email this time and was able to reset and login with the new password
It might land in spam which I have noted down
I also tested rest of the functionality of the app and everything works fine.
After this I published v1.0.1 release on GitHub, updated the README and added Repo description, website and topics.
This completes my development effort for the moment.

1
0
19
Open comments for this post

8h 13m 32s logged

Continued Devlog on Password reset
Password reset build complete end to end.
A new password_resets table was created, single use tokens that expire after 30 minutes are stored in hash form(not in plaintext) and a reset that logs out every session once it completes.
Used Gmail SMTP to send the reset link.
Users can request a rest of password, get the email, set a new password and login.
Did a lot of testing locally to confirm the old one does not work after a password has been reset.
Faced some Python issues to compile the new code. There were also some bugs related to windows copy-paste which took a lot of time to diagonize and fix,
In the mean time my laptop crashed and upon reboot hacktime trackign stopped working. I had to spend a couple of hours to troubleshoot the issue which was related to Norton anti-virus on my laptop. It had quarantined the WakaTime tracking tool thinking it was suspicious.
Finished testing and ready to roll this into production tomorrow.

0
0
31
Open comments for this post

8h 13m 53s logged

Build out a password reset feature based on feedback from users:
Started with research on if paid hosting would be needed as KinGuard is hosted on free tier.
Outbound email through Gmail is allowed on free tier.
Built a Database table to store reset tokens securely, the actual email sending code, request a reset and complete the backend that verifies the token
and resets the password.
Fixed a bug which broke account registration logic.
Faced another issue with the text editor which saved some garbage characters. I had to recreate the file.
Created the forgot password html file
Verified the backend and all the features of the app multiple times.
Reset password logic still has to be built into templates followed by full test(local) and deploy to production
More in my next Devlog

0
0
21
Open comments for this post

3h 8m 44s logged

Deployed the US country-support module from Github to the live site on Pythonanywhere. Fixed a couple of issues as well that came along the way.

Kinguard app is live on pythonanywhere. This means deployment to local, Github and to Pythonanywhere.
As the repo is public now, I used the bash console on PythonAnywhere and directly pulled the changed files from the repo with curl commands.
I then verified if the deployed files work correctly by runnign md5sum on all the changed files. I then compared the numbers with my local copies to make sure the numebrs matched. One of the files was not copied over correctly so I had to redo it.
After this, I reloaded the app from the web console of pythonanywhere. This ensures changes are propogated and take effect.
The README on GitHub is updated now to reflect the changes made and both India & US available as country options.
Did a full regression check on the India and US side of the app after deploying. This is to ensure country-support changes had not broken anythign else in the app for the India users who are live on them.
Fixed a bug which was leaving a stary character in commit and showing oddly in GitHub history. Fixed with plain ASCII encoding.
Verified the “Call for help” and “report” buttons showed correct numbers for India and working as before.

0
0
18
Open comments for this post

3h 23m 39s logged

Continuing the US Country-support Build for KinGuard:
Researched and wrote the US Scam catalog
Mapped 5 categories for India with US
Fixed a bug around help dial 1930
Added country specific names
Fixed a bug around family screen not getting the alert for the US module
Deployed the code locally and verified everything works

0
0
20
Open comments for this post

1h 58m 21s logged

Continuing the US Country-support Build for KinGuard:
Wired the country field through push notification(send_push() in app.py)
Added country picker to the setup page above the language dropdown
Compiled and verified the python code: python -m py_compile app.py
conducted a live browser test to verify changes appeared

0
0
15
Open comments for this post

2h 7m 29s logged

KinGuard passed Google Play review and is live in production.
14 installs(12 testers), no crashes. All bugs fixed.
Enhancement request made: Develop a US based alerting for Seniors
Started the country refactor: RULES now keyed by country
Intent is to add new COUNTRIES table
Add what varies per country (languages, voice locales, grid order, emergency number, who to report to)

0
0
14

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…