The Username and Password is given by the user of the android application. The hidden parameters were browser generated. This created a problem because my application is impersonating a mozilla browser but it required all parameters to be defined before the http post. I found that the values of the hidden parameters were present within the html code. Using a HTTP Get, I retrieved those values and sent them back in the HTTP Post.
The HTTP POST is only to pass the username and password to the server so that it will show the student’s information. Once logged in, the app will perform an HTTP Get on three types of pages, my course, faculty, and attendance details. From the HTML code of these pages, it will extract the required information and store them into SQLite Databases.
An example can be seen in the extraction of the courses and their attendance information from the MyCourses.aspx page. A html code snippet of the Computer Graphics subject is shown on the screen. From this, I can extract Name of Course, the Attended number of classes, the Conducted number of classes and a unique number for each course. This number can be used to find the URL of each each course’s attendance details page.
What is AMIZONER? Attendance Planner + AmizoneIntroduction
What makes it different from the official App? MY COURSES
What makes it different from the official App? TIMETABLE
What makes it different from the official App? ATTENDANCE
What makes it different from the official App? SYNC
What makes it different from the official App? AND MORE
• Amity University has an excellent Student Information Portal and all Amity students use the same frequently.• Attendance monitoring is one of the key issues students are concerned with.• An easy and convenient way to access the Student Portal for updated information on attendance was in my mind for sometime.• Hence, when it was time for the Practical Training project , I instantly thought of making an Attendance Planner for Android based Mobile Phones.• My Guide, Ms. Shanu Sharma, approved of the same.Motivation
To create an Android Application and perform the following:• Connecting to an HTTPS site (Amizone) through GPRS/WiFi.• Opening the relevant html pages using HTTP POST & GET.• Parsing the student info/course/attendance data logically.• Creating a local database for offline view.• Creating a user-friendly interface with proper highlighting using XML.Objective
• Creating an efficient navigation design and making it compatible with all Android API versions and devices.• Connecting the application with my personal server (Server-Client Communication) for updates using Google App Engine to host the server.• Deployment and usage analysis using Google Analytics• Monetization through advertisements using Google AdmobObjective
Technology Implemented: Development Environment: HTTPs POST Eclipse HTML Parsing Java IDE SQLite Storage SQLite Android Development Corel Draw Google App Engine Android Emulator Google Analytics (all versions including ICS) Google AdmobImplementation
The application uses HTTPS POST and HTTPS GET to extract html code of the required page. HTTPS POST requires understanding of two concepts: • A simple HTTP POST • SSL and Trust ManagersImplementation:HTTPS Post
Using HTTP Get, the app receives the html code of the following pages: • My Courses • Faculty • Attendance Details • Time Table All the required information on a page can be extracted using the concept of HTML PARSING.ImplementationHTML Parsing
As of the now, Five tables have been created to store the details of astudent’s session.Table I: UserPass | ONLINE | This table the login details so that the user need not type in his username and password again. KEY USERNAME PASSWORD LAST_UPDATE NAME DESIRED_PERCENTAGE• *The ‘ONLINE’ here means it is directly dependent on the online data. (The table is destroyed and recreated during every update.)ImplementationSQLite Database
Table II: MyCourses | ONLINE | This table stores the course information. KEY CNAME CODE ATTENDED CONDUCTED Table III: CourseTeacher | ONLINE | This table stores the faculty assigned to course. CNAME TEACHER_NAME Table IV: AllTeachers | OFFLINE | This table stores the faculty information. *The AllTeachers Table is never destroyed, KEY TEACHER_NAME CABIN_NO CONTACT_NO only updated since it isindependent of Amizone. Table V: AttendanceLogs | ONLINE | This table stores the attendance logs of all courses. KEY CNAME DATE PERIOD PRESENT ABSENT
This app has implemented various android concepts: • Java & XML • Dynamic Activities, • Customized Listviews • Effective Navigation, configuring back button and menu options • Progress Dialog Bar using AsyncTask Class, a better alternative to threads. • Connecting to the internet to perform HTTP Post and Get operations. • Accessing and storing in local databases. • And many more..ImplementationAndroid Development
• In order to control the app, a server side validation page was created using Google App Engine. • Based on the indicators provided on the page, the application can prevent further usage or display a message during the sync. • GAE required a basic idea of python, servers and redirection scripts.ImplementationGoogle App Engine
Everyday, at least 10 users install this application Everyday, at least 100 users use this applicationResults 16th July 2012 – 15th August 2012
AMONG THE REGIONS, DELHI AND UPTOP THE CHARTS WITH THE MOST USERS
AND AMIZONER HAS MANY HAPPY CUSTOMERSOut of 54 Ratings, 47 have rated this application FIVE STARS
Using Admob, I have learnt how to monetize.Here, the revenue is based on the impression and clicks of the advertisements shown on my application.
• This project provided me with the incentive to learn new languages and technologies and to widen my skill set.• I propose to continue my development activities in Android, Java and Python to be part of the ongoing Innovations happening in the Industry.• I hope to continue working under the guidance and facilitation of the Amity faculty to perform to the best of my abilities.Conclusion
Online Sources: Books:• http://stackoverflow.com • The Complete Reference: Java,• http://developer.android.com By Herbert Schildt• http://wowjava.wordpress.com • The Busy Coder’s Guide to Android• http://vogella.com Development,• http://android-coding.blogspot.in By Mark L.Murphy• http://commonsware.com/android• http://coenraets.org/blog/android- • Java Examples in a NutShell, samples/androidtutorial/ By David Flanagan• http://learn-it-stuff.blogspot.in/ • Java 2 Programming,• http://androidsnippets.com/ By David Koosis• … References