Jadawil was made because its creator got tired of manually making a schedule every semester. As you know, that usually involves:
Jadawil reduces the laborious process outlined above into two steps:
Before creating Jadawil, my aim was to create a unified set of tools (Adawat) for UAEU students. This included Jadawil, a better course search engine, schedule recommendations from similar students, and more. Unfortunately the university was not interested, so I just made Jadawil.
Jadawil is written in Python and relies heavily on the Flask web framework. Flask basically allows the app to have an organized web interface. The website is hosted on Heroku as you may have noticed from the free URL.
So, how does it get the course information? I've written a separate program that uses my UAEU details to login to eServices, searches for ALL courses, and saves the resulting page to HTML. The HTML is then parsed using a complex set of rules (thanks eServices guys!) and the course data is finally saved in a friendly, fast, and easy to access format (Python pickle). I run this program manually whenever I feel the need to. It could have been automated, but I'm afraid of UAEU banning me if they catch regular logins from my username.
Jadawil has been actively developed and tested (by myself at least) for the past two years. You can view the source code for a version of Jadawil from last year on Github.
I absolutely suck at anything design related. If you'd like to help with layout (HTML/CSS), color palettes, or logo design, please contact me on Twitter.
If you're interested in heavily testing the app (and breaking it!), feel free to contact me.
If you're working on something in Python, C/C++, Java, Scala, or JavaScript, reach out on Twitter and I'll see what I can do to help. I will not solve your homework or do your projects.
Created by Assil Ksiksi, a proud alumnus of Electrical Engineering @ UAEU.