Giter Site home page Giter Site logo

ashwinkanchana / cansis Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 9.89 MB

Cansis is a modded Android client to check Announcements, Attendance, Marks, and other updates from college.

Java 97.20% Python 0.76% HTML 2.04%
andorid java firebase firebase-auth remoteconfig aws-lambda dynamodb firestore webscraping sendgrid-api

cansis's Introduction

Screenshots

Cansis is a modded Android client to check Announcements, Attendance, Marks, and other updates from college.

Improvements

  • One-time login ๐Ÿ”
  • Push notifications ๐Ÿ””
  • Forgot password? ๐Ÿค”
  • Performance tweaks ๐Ÿ“ฑ
  • Dark mode ๐Ÿ•ถ
  • Offline Persistance ๐ŸŒŽ

Dependencies

Cansis uses a number of open source projects:

Cansis requires Android 5+ to run

Implementaion

Notifications
  • Every 5 minutes a python script runs on AWS Lambda which hits college's Announcements Endpoint, compares current JSON with the previous one which is stored in DynamoDB, if there is an new update Lambda calls Firebase Cloud Messaging to send push notifcation to clients
OTP
  • After reCAPTCHA verification, OTP is generated, its stored in Firestore and mailed to verifed email in a HTML template through Twilio's Sendgrid, then input is compared with Firestore and validated
Force Update/Discontinue
  • Since the app is not published on Playstore, built a backup plan to force user to update to latest version or even entirely disable the app using Remote Config
Web Scraping
  • Marks and Attendace can be fetched via API but it returns details of all previous semesters which almost took a minute on average, but the same data is available on college's website for a particular semester, which has better response time, so used web scraping (on device) to get these data from website

cansis's People

Contributors

ashwinkanchana avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.