GithubHelp home page GithubHelp logo

proffapt / ferp Goto Github PK

View Code? Open in Web Editor NEW
39.0 1.0 13.0 645 KB

Stands for Feedback-ERP. Automation extension for IIT KGP ERP feedback

Home Page: https://youtu.be/uUf2_91boco

License: GNU Affero General Public License v3.0

JavaScript 75.45% CSS 11.42% HTML 13.13%
erp hacktoberfest iit-kgp iitkgp auto-feedback-erp auto-feedback-erp-iitkgp erp-feedback iit-kgp-erp iitkgp-erp

ferp's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn

Automates the process of filling up feedback form in ERP for IIT KGP students

Tutorial v1.9.0


Cascading Mode (Default) Selective Mode
  • Uses the same feedback type for all forms
  • Fills next form after previous form is submitted
  • Skips submitted forms, fills the remaining ones
  • User selects the feedback type for each form
  • Fills captcha & submit the form (auto/manual)
  • User decides the order of form submission

Fills the captcha, submits the feedback form (in case of cascade mode - repeats, until all forms are submitted)

Automatically downloads the admit card after all the forms are submitted using cascade mode

Form can be submitted by pressing Enter key after typing captcha in manual mode

Re-fills the form with previously given feedback type, if wrong captcha was filled

Bypass confirmation pop-ups, which appear everytime a form is submitted

Has three feedback types, namely - positive, negative & neutral

Invoking a feedback type randomises the choice of available options

get fERP from mozilla add-on store get fERP from chrome web store

Table of Contents
  1. Manual Installation
  2. Standalone Scripts
  3. Contact
  4. Acknowledgments
  5. Additional Documentation

Manual Installation

It is recommended to install the extension from the respective extension stores for your browsers. However, if you encounter any problems, you can also manually install the extension from the source files in this repository.

Chrome

  1. Either download or clone this repository.
  2. Open new tab and type chrome://extensions on search bar.
  3. Toggle the DEVELOPER MODE on top right corner.
  4. Click LOAD UNPACKED option, browse to the cloned folder and select the extension-src/chrome folder.

Warning

You have to select the whole folder not just any file in particular.

Firefox

  1. Either download or clone this repository.
  2. Open new tab and type about:debugging#/runtime/this-firefox on search bar.
  3. Click on the Load Temporary Add-on... button under Load Temporary Extensions Section.
  4. Navigate to extension-src/firefox folder in your opened file navigator.
  5. Select the manifest.json file inside it and press open.

(back to top)

Standalone Scripts

Note

This project has undergone various significant changes and now incorporates "my versions" of "feedback fiilling scripts" into a browser extension which supports firefox, chrome and their derivatives.

  • If you're facing any issues with the extension, don't worry! You can still use the scripts as standalone files.
  • The steps to use these scripts for both firefox and chrome are mentioned here.

(back to top)

Contact

📫 Arpit Bhardwaj ( aka proffapt ) - proffapt's Twitter proffapt's Telegram proffapt's LinkedIn proffapt's mail proffapt's forum for cybernity

(back to top)

Acknowledgments

(back to top)

Additional Documentation

(back to top)

ferp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

ferp's Issues

Update extension's LOGO

  • Currently the textures don't express out image
    • Make the rings a bit bigger
    • Add a Dark mode compatible icon
    • Add institutes logo somehow (Can google about IIT KGP easy to get.)

UI/UX enhancement

Improve the UI for the extension and make it appealing to eyes along with being descriptive:

  • Better interactive buttons
  • Logo for the extension
  • Tooltip for the checkbox
  • Fix the size

[Firefox Bugs Report]

  • Multiple Button Clicks leads to multiple attachment of event handlers
  • All form filler is not working

Implement autofill captcha

Final step towards complete automation - Captcha solving automation

For now the user needs to fill captcha manually.

  • Implementing this will need to change the code base to large extent, but will be easier as compared to current one.
  • Utilising some API will be our first go-to method.

Develop Chrome variant in Manifest v3

Chrome Manifestv3 has a few bugs, being listed below:

  • 'Not Eligible' Error when using ENTER to submit the form instead of button
  • Multiple dangling event listeners on button of main ui
  • Doesn't work on first click
  • All form filling is giving following error
    • Refused to run the JavaScript URL because it violates the following Content Security Policy directive: "script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules' http://localhost:* http://127.0.0.1:*". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present.
    • Incorrect captcha.. subtracting more than 1

Automate release workflow

Note

All of these below have been implemented, checked options means they have also been tested.

Releases are published on the following platforms:

  • Github - (done)
  • Mozilla Add-on Store
  • Chrome web store

Browser extension for executing these javascript codes

There are a few javascript codes in this repository, have to implement an extension which shows the variant of feedback a user wants and then selects it. After it the extension does rest of the job for the user - might not include filling the captcha ( kudos to you if you can automate it ) - so the user won't need to run the script manually.

Build a Chrome version

Make changes so that the extension is also supported on chrome and create a separate binary / zip for it.
POA is not decided, neither is clear to me yet.

Browser Extension

I am working on a Browser Extension for taking the automation to next level.
Checkout the current progress on the branch: extension and any further branch will be named extension-*.

Roadmap in my mind to implement, along with issues being faced:

  • Optimize the js, make them as better as I can.
  • Implement a bare extension as a proof of concept.
  • Buttons for all 3 variants of feedback.
  • A checkbox/radio button to ask whether to use this variant for all of the feedbacks, then wait for the user to fill captcha and press submit feedback.. then the extension will automatically select the next course/prof.. fill the form automatically and then user fills captcha and so on..
    • Test handleProf() function.
    • Get the state of checkbox from main.js onto *_feedback.js
    • Handle the bug when the code doesn't wait for pressing the submit button when the last prof's feedback is filled.
    • Some history or dangling listeners issue, breaks the code if it's not reloaded.
      FIX: reload page and the execute the driver code, maybe?
    • Combine all three scripts into one. Was being done in extension-makeonejs
      • Issue: feedback doesn't change unless you reload. Below is the working fix, will implement later.
        image
      • Fix issue: Garbage value of feedback after first iteration
        • Dangling Listeners.
  • Complete a full fledged working prototype of feedback form.
  • Implement the process to auto-click the alert button - bypassed it, lol.
  • Fix the garbage value bug on consecutive forms.

NOTE: These changes were done to dummy feedback form, update these

  • In feedback.js - implement document.getElementById('myframe').contentDocument.getElementById('sub'); in-place of anything document.*.

Cycle Text Feedback

Add a feature to cycle between different text feedbacks (strengths and weaknesses) while keeping the rest of the inputs the same.

Auto download Admit Card

Since the sole purpose of filling those forms is to be able to download the admit card for end-sems. Then after all the forms are filled, download the admit card automatically.

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.