GithubHelp home page GithubHelp logo

asetalias / amibot-tg Goto Github PK

View Code? Open in Web Editor NEW
7.0 3.0 5.0 269 KB

Amibot on steroids: A Telegram bot for Amizone, powered by the go-amizone API!

License: MIT License

Makefile 1.35% Python 91.69% Dockerfile 0.45% Go 6.51%
amizone amizone-feedback telegram-bot

amibot-tg's People

Contributors

achintya-7 avatar maniktherana avatar sudosu-bham avatar vyogami avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

amibot-tg's Issues

Rewrite in rust(tm)

We have to migrate the ligma engine to rust cargo.
Deprecate the sigma handlers

Create a CI/CD pipeline for deployments

Automation is life of easy mode. Currently, AmiBot telegram is hosted on fly.io. It would be great to have a way to automatically update the build on fly when the main branch gets updated.

Level: intermediate

Incorrect total marks

Total marks should 100.00 and not 10.00 for this course. Before when there were no marks uploaded, it would show 0/100. Not sure if this is a Go-Amizone issue or AmiBot-tg just yet

Screenshot 2024-04-24 at 10 42 11 PM

Intermediary message for faculty feedback

Filling faculty feedback may take a while, its best if we send an intermediary message notifying the user that the bot is currently filling feedback.

There have been cases of users spamming the bot or being generally confused while waiting for the bot to fill feedback

[Feat] [Go] Caching for servers when calling class attendance

  • There is an API in the Go server which fetches class attendance. It could be a slow experience and not provide a good UI experience for the API users.
  • We should implement a caching mechanism for this.
  • Also a cron schedule to re-cache it as well. Keep in mind to limit a number of requests so as to not overload the system.

[Feat] Show Exam Room No if its available.

Currently Exam Schedule command dont show the exam room no. when requested.
As the go-amizone has been updated with this feature, we can now update the protobuff files and implement it for amibot-tg as well.

Better error response for ``Exam Schedule``

If there is no exam scheduled we get the following error:

Screenshot 2023-07-21 at 11 48 24 PM

Currently, since the user is most likely logged in, it seems misleading or redundant to ask them to log in again. We need a better way to communicate this as go-amizone returns an error.

This behavior also happens when clicking the Attendance button when a user is not registered yet for the semester.

Level: easy

Better About response

The current response of about seems half baked. We should add a better response with maybe some emojis and related links.

Add to calender button

Users should have an option to click a button to add their schedule to Google Calendar.

Level: hard (but most rewarding)

Merge documentation to master

Any documentation from dev branch should be merged into master.

Make sure we explain in CONTRIBUTING.md what we have to work in dev branch

Add a timetable sneak peek for widgets

Telegram app has widgets which show the first line of the chat as such:
IMG_5868

We can take advantage of this if the message returned from get_class_schedule_handler started with a sneak peek of our timetable status with emojis as such:
Class Schedule: 🟢🔴🔴🟢⚪️⚪️ instead of just Class Schedule:

Add CI to update protobufs

This is something we may overlook when implementing a feature, best to automate it.

Considerations:

  • It should copy the latest protobufs from https://github.com/ditsuke/go-amizone and paste it into /proto/amizone.proto
  • It should then run make gen commands
  • After generating /gen/amizone_pb2_grpc.py, it should change line 5 from import amizone_pb2 as amizone__pb2 to import gen.amizone_pb2 as amizone__pb2

Add units tests

We need some tests to make sure everything is working as intended that run on commit.

Add account options

Just adding a simple button to:

  • Logout
  • Login again
  • Delete your profile from the database

Add monitoring of performance metrics

It is critical for us to be able to see how our bot is being used. We should be able to track the following:

  • Daily Active Users
  • Monthly Active Users
  • After a request is made:
    • How long did go-amizone take to process the request
    • How long did amibot take to process the response from go-amizone

Level: Hard, lots to consider here like where to store the logs, how to access them, do we need a separate API or external service?

Add a linter

Use flake8 or ruff for linting instead of relying on black.

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.