* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Final Project Report
Survey
Document related concepts
Transcript
Final Project Report Mohammed Aziz 0651120232 - Kareem Zoghby 0751120299 بسم هللا الرحمن الرحيم Report Outline: 1. Introduction: Background information about the problem The proposed solution. 2. Main Body: I. Planning – what you set out to do and why II. III. Project aims Project domain Project requirements Tools & development environment Doing – what you did, how you did it and why. Database (Courses Doing) UML & Developing process Diagrams and flowcharts Map Doing Media Doing Contact us Doing Reviewing – what you achieved and what you learn Targets that was set Achieving targets User Interface overview & discussion 3. Conclusion Summary What we’ve learned 4. References websites 1. Introduction: a) Background information about the problem & solution, our project (AOU Guide) is not solving a direct problem rather than it’s helping for the ease & comfort of use, more way for communication, Marketing & fame. as we notice in this age, mobile generation is very popular, specially the new generation (Touch screen mobiles) like Android, iPhone cell phones. Big known universities like Stanford and Harvard have mobile applications for the university, it’s like a guide app for students and non-students. The app express the university in a technologic and formal way, for example, it have academics and courses that will teach, images for university, location on map, contact info (Email & telephone numbers). All this in a small app on your mobile, such a great benefit! So user can do with this guide stuff like: - Browse latest news & events of the university (Updated). - Browse Academics & Courses descriptions, prerequisite & credit hours. - Locate university branches on Google map. - View galleries and images of the university (Building, labs, library, sections.. etc). - Have a guide for all contact telephone numbers and email addresses. this is on the benefits from the user side, let’s take a look how can this app can be useful to the university itself. - Fame: the application is on Android/iPhone market which is available for all users that have such cell phone, user can download the app and browse this electronic guide.. so it’s advertisement is a very professional way isn’t it? - Marketing: of course this application can bring people sign in the university if it presented itself well, for example I am a student searching for IT university to sign in at, I found this application & downloaded it, I browsed IT Courses descriptions and liked it, next step I go to the university and ask for more information, so it can bring people to the university to sign in! - Prestige: When someone for example enter the university website, or the university itself, and read this (Download our AOU Guide mobile application on your mobile phone now!) isn’t that sound professional? of course this one will give a prestige to this university and respect as it have mobile app that have a guide for itself. 2. Main Body: I. Planning – what you set out to do and why The project is a mobile application for AOU students, & also it’s for people outside the university whom interest in enrolling in the AOU tracks. The app is like an electronic guide for the university, not Egypt branch only but all AOU branches. Project aims: increase the ways of getting information about the university easily/anytime. Increase number of people joining AOU (marketing). AOU expressing itself in a more technology way (fame). Ease for the people/students to follow up & have good knowledge about AOU’s tracks such as (courses “core, elective”/credit hours...etc.). AOU app will be helpful for new comers & people interesting to join AOU, it will satisfy them with info about tracks, courses, branch places on map. Stages: Planning: first of all we needed to get all AOU resources such as (tracks, courses info, contact mails & numbers, history. Etc) so we can have a good fundamental sources which the application will be based on. for implementation our plan was simple because we decomposed the project into individual tasks so we can easy do the project, for example the application have a UI for the user to select from: Map, courses, news, media. Etc, we worked on each one of those activities in individual & that helps us to achieve good organized coding. Analyzing We analyzed what specific data we need because there is a lot of data to consider when we talking about a university that have 7 branches, 4 track educational systems. We tried to choose the only common data between the 7 branches to put in the AOU app, because as I said before AOU app is for all branches in general not only Egypt. We sat together with paper & pen, then decided what info we will put in AOU app and what info we won’t, for example we were going to put instructors that teach the course beside every course, but then suspend that as , of course, instructors differ in every branch. Also analyzed every activity (Map, News.. etc.) & we hoped that AOU university have (.RSS feature) news but unfortunately it hasn’t. Android We decided to make the app on Android platform for several reasons, first let us explain what is Android in a nutshell: Android is a Linux-based operating system for mobile devices such as smartphones and tablet computers. It is developed by the Open Handset Alliance led by Google. For reasons: actually there two reasons for why we choose Android OS. 1- it’s based on Java syntax, which we studied a lot in AOU courses (M255, M256, M257) so it was more easier that to study a whole new language. 2- Android is easy to develop with & not complicated, in addition to it have features like Google map that’s easy to manipulate with. Android is spreading very fast in all over the world with a plenty of devices, I think it will have a good future. Android market (buying a developer account) is one time charge (25$) for lifetime, in contrast with another marketing website like Apple it have yearly fee. We took Android courses to be able to make AOU app. Tools & developing environment: - Programming Language - Integrated Development Environment - Database tools - UML tools First let me say that Android platform uses Java programming Language, and XML for building Graphical User Interface. That was one of the biggest reasons making us choosing Android rather than IPhone/ Windows platforms, because it’s based on Java which we have a good background of it. Eclipse: We used Eclipse IDE for editing and compiling the source code, of course Eclipse is very powerful tool, Google was very smart for making Android is very famous, that’s my personal opinion: It’s used 2 famous language tools and didn’t invent a new whole language for Android, and those two are Java for syntax, XML for GUI. second It used already famous tool (Eclipse) that people are used to, and made a special plugin called ADT (Android Development Tools). Android Development Tools plugin is designed to give you a powerful, integrated environment in which to build Android applications on Eclipse IDE. that way, Developers of Android all what they need is to know Java & have Eclipse which a lot of people already do, that’s why Android market & developers getting bigger easily and quickly, another thing took my attention and let me know that Google is really smart company, is that every command in Android xml part begins with (Android: ), that way the name (Android) is stick to the developer very much.. it’s good marketing way… The reason behind choosing Eclipse other than alternative IDEs that we could’ve used is that Eclipse is an open-source community that develops open platforms and products. so we don’t have to pay to get the IDE, in addition to, almost all Android tutorials (Videos / Books / Forums) on Eclipse. Android SDK & AVD Managers - Android SDK: The Android Software Development Kit includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. This emulator helps in testing application, there is two ways to test the application you are developing: First way: to test the application on a mobile device, which you connect you Android mobile USB to your PC, then the SDL have a program that you can automatically link Eclipse with you mobile so when you do (RUN) on Eclipse it runs on your Device. - Android AVD: this is the second way to test application you develop in Android, AVD stands for Android Virtual Device, it’s an emulator configuration that lets you model an actual device by defining hardware and software options to be emulated by the Android Emulator. You can create as many AVDs as you need, based on the types of device you want to model. To thoroughly test your application, you should create an AVD for each general device configuration (for example, different screen sizes and platform versions) with which your application is compatible and test your application on each one. SQLite SQLite is an embedded relational database management system contained in a small C programming library. SQLite implements most of the SQL standard, using a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. The source code for SQLite is in the public domain, SQLite can be found in Android package: android.database.sqlite, it Contains the SQLite database management classes that an application would use to manage its own private database. Applications use these classes to manage private databases. We choose SQLite as a language because Android uses it, and it’s limited on embedded systems or for small database projects - SQLite Manager: SQLite Manager is a SQLite database manager provided as a Firefox extension. By providing the software as a Firefox extension, SQLite Manager is available on many different platforms and trivially easy to install. We choose SQLite Manager as a tool because it’s easy and simple, and it’s limited on embedded systems or for small database projects. Paint.net Paint.NET is a proprietary freeware raster graphics editor program for Microsoft Windows, developed on the .NET Framework. We choose this tool as it very simple, very light and easy… We used this tool for making icons for AOU app. for example the country flags, the App Icon (Removing the white background of the pictures so it can be transparent and be more beautiful). Doing – what you did, how you did it and why: Database : Database Approaches & methods. Our approach towards that is we looked first what Android platform uses for database. Database development lifecycle We used iterative lifecycle in developing AOU database. Android uses SQLite, so we planned to study how to use SQLite and some SQL statements. Then we determined the scope of the data that the app will require. And that makes us move to the second stage which is Requirements Definition, so we analyzed AOU resource data & entity types that we will use in the database. For resources in requirements I took from Dr.Nabil a program guide for (Information Technology & Computing – latest plan). The sheet is very helpful resource as it contain course rules, names, descriptions, divides core / elective courses, in addition to it contains an explanation for Cumulative GPA requirement and how to calculate it. Database keys & constraints Design stage was about determining what Tables will be created in the database, what columns each table will take. what tables that relates together, primary keys & constraints. For entity types we agreed on: Courses, Tracks Example for (Courses) table would like: Course Code M257 T471 Course Title Putting Java into work Telematics Project Credits 5 8 Prerequisites M255 M359 M359 Relational Database 8 M257 M256 Software Development in Java 8 M257 Primary key is Course code as it’s differ for each course, foreign key maybe Track id that we may add later in the table. For assumptions we assume that ITC track is the same in all Arab Open University branches. One of the constraints we made is to be updatable database not static, as the Track may update its courses later, & also to be built in inside the App itself & that I will explain later in alternative methods that I could’ve take. Another example for (Track) table would like: Track ID 1 2 3 Track I T & Computing – I T & Communication – I T & Business Business Language Primary key is obviously (Track ID), we still working on it. Course Doing: we used SQLite to create the tables, and also we had to fill all tables manually each course by course. We notice in the course activity there is a list view that displays the courses list, this list view is a feature in the android that takes a parameter of (Array adapter), so we now have a SQLite database, and want to relate it with this list view, how we can do this? steps we made: 1- Create generic array lists of type <objects> which was <Courses>, courses is an object of a class we made that have attributes same as columns of the database table, and I’ll explain why in the following steps. 2- Create for every course table a Cursor that takes the table information and insert this information to a new object of Courses class, then after passing this info to a new course object, we add this course to a specific array list that related to this specific table. 3- Make the list view array adapter connect the array of object we made with the list view so it can display the content given in the database. Map Doing: Android have of course a very good feature which is Google map. what we did is that we choose while creating the android project in the Eclipse a function called (Google API) which contain the map feature supplied in. Then we create a new call extends MapActivity so we can inherit map methods. something called GeoPoint in this activity takes two paramaters. public GeoPoint(int latitudeE6, int longitudeE6) Every spot on Google map have a latitude and longitude, so we had to detect and search for every AOU Branch in the Middle east and detect where it’s located exactly so we can make to every branch a specific GeoPoint, example from what we did: Lebanon = new GeoPoint((int)(33.872286*1000000),(int)(35.512656*1000000)); Bahrain = new GeoPoint((int)(26.203538*1000000), (int)(50.535207*1000000)); Egypt = new GeoPoint((int)(30.064024*1000000), (int)( 31.346435*1000000)); KSA = new GeoPoint((int)(23.885942*1000000), (int)(45.079162*1000000)); Jeddah = new GeoPoint((int)(21.566799*1000000), (int)(39.170895*1000000)); Riyadh = new GeoPoint((int)(24.802318*1000000), (int)(46.707290*1000000)); Kuwait = new GeoPoint((int)(29.322024*1000000), (int)(48.030874*1000000)); Then we add this geo points to an overlay layer of the map, so it can be marked on the map when the user opens it. Also we did a menu that have all AOU Branches, then when he click on any branch it automatically zooms in to the street which AOU selected branch is located, we used a site called http://itouchmap.com/latlong.html for getting points longitude and latitude. screenshot displaying after a user clicks on Egypt in menu Media Doing: This activity contain of main three parts, 1st part is a top small Gallery which have AOU Branches flags and he can roll between them, and after clicking on a specific flag we go to the 2 nd main part. 2nd part is a bottom small Gallery which contain a gallery of pictures for the selected specific flag, for example if he selected KSA flag, then the bottom gallery will be a gallery of pictures of KSA branch, if the user selected Egypt flag, then the bottom gallery will be a gallery of pictures of Egypt branch.. etc. and if the user clicked on a picture in the bottom gallery we go to the 3 rd part 3rd part which is a image view on the middle of the device screen, this is finally to view the selected picture that have been clicked on the bottom gallery. Contact Us Doing: This is also a list view that contact all AOU Branches is that format: Branch Name. Email. Telephone Number. we used a feature in Android called linkify that when we click on the text of the email, it automatically opens a new sending an email activity, also when I click on the telephone number it automatically put the number on the screen then it needs only a one hit to call this number. linkify takes two parameters, 1st one which is what unit you want to linkify on, in this case the email text or the telephone number. 2nd parameter is what action you want to make when clicked, in email we select Email action, here is a piece of code for this section: email.setText("[email protected]"); telephone.setText("+(965)25329013"); Linkify.addLinks(email, Linkify.EMAIL_ADDRESSES); Linkify.addLinks(telephone, Linkify.PHONE_NUMBERS); Software routine code steps Because Android is still considered new platform, most projects and tutorials based on Eclipse IDE, so we had to switch from (Netbeans IDE) that we used to in the university, and learn a little bit about eclipse. second step is downloading Android SDK to be a plugin in Eclipse, so we can make Android projects. We used StarUML to define entities that we we’ll use in AOU app, in addition to SQLite for the database part. As I said we divided the application code into set of activities that don’t depend on each other, so we worked in each activity as individual, & as soon we finish one to go to another. Alternative approaches Database it was going to be iterative lifecycle to, but different in structure, first we had a vision that the database will be a webserver that contain all data of courses, so if the user have the app on his mobile and open courses section it contain automatically into Internet and fetch the data on the webserver. this technique have advantages & disadvantages. Advantages and disadvantages Update speed, i.e. if we want to add/delete or edit course info, we enter the webserver and just edit it, and then it will appear to the user on the mobile as soon it connects again to course section in the App. so the advantage is good for easily updating database and the fast it will appear on the app. Disadvantages: the User must be always connected to Internet when he opens Courses section in AOU app. that’s costly and maybe slow in fetching courses too. in addition to we need a hosting domain to upload our data into, that’s also costly + need extra effort, and also this speed of updating info won’t be very useful to us because if AOU University update its courses, it updates nearly Yearly or semester, and not like every day or every week we will need to update something. so the alternative solution was to buy an Android Developer account, that way we can upload our application on Android market and it gives us a unique serial number for this application so if we want to update the application (AOU version 2) for example, every user that have the application on his device will show him a notification that (An update is available, do you want to update now?), so that is the alternative solution, is to make the database built in inside the application itself, then update it locally on the IDE then update the application on the market. Alternative approaches for software (Non - database) Advantages and disadvantages An alternative approach for making this application was that to make this application available on the three famous platforms (iPhone, Windows, Android). that was my plan at first, and there was a tool called DragonRAD do this already, this way you can get more users using the application. Advantage of this approach is you just type one code, and then you can execute the application with the desired platform (iPhone, Windows, Android). This saves a lot of time and effort, if we make the application on iPhone, then we want to make it Android, we will have to build it from scratch, but this tool had this feature that you can execute to these three platforms. Another advantage is that this way (Having the application available on the most famous three platforms), more users will be able to use the application, more benefit to AOU students as you will cover a lot of students more that targeted only students that have Android phones. Disadvantage: Two disadvantage of this alternative approach, one is that we’ll need to learn a new tool (Dragon R A D) from scratch, this of course will need time & effort to learn a new IDE than to use one that is familiar & have idea how it works. Second disadvantage is that this is a new tool, that have not enough tutorials on internet, rather than there is not forums that support this tool of this way of developing, like (Stack Overflow), Stack Overflow is a huge support website that a user post his questions and professional do answer this question. Another approach was to make the application by J2ME (Java Platform Micro Edition), J 2 M E is a Java platform designed for embedded systems (mobile devices are one kind of such systems). Advantage J2ME Hard + old + not support android … J 2 M E is hard platform, I already tried to self-study J 2 M E by Sun tutorials, it’s very hard to understand, in addition to its complexity. that’s a thing, another thing that it’s old, and does not support the new generation of mobile devices like (Android, iPhone, Blackberry, Windows). UML Diagrams Data Flow Diagram: ER Diagram: Use case Diagram: Reviewing – what you achieved and what you learn: Targets & goals: First setting a goal and aim a target by searching for appropriate subjects and putting hypothesis for what could be done for the project, as many things came in mind. Determine what could possibly obtain from all of this evolution in the technology fields, Smartphone is one of these aspects, with its rapid developing phases, and network enhancement from 2G, 3G till 4G puts Smartphone speed service of accessing the internet into the flourishing way, also the new Smartphone's touch screen feature make it managed and used easily, as all of these aspects used to suites your needs and tendency. When you're about to create a project or a system, must set a plan of which audience you will target, What is your interest in the business, which tools you will use and what is the sequence of developing a software, the students of the AOU are the target, mobile application helping guide booklet including courses and graduation's Plans, Maps, News, contacts, About, and Social communities (Twitter, FaceBook). Helping students to pick the right track and clarify prerequisite subjects, as we weren't aware of these dilemmas, as we came across these issues and got involved in as the college lack of systematic academic plan or even regulations, we aimed our goals to exploit these obstacles. So as one of the stake holders asking ourselves, how we should help the freshmen and also the people who has an interest of knowing the university curriculum, system and mechanism, the aim is to merge between the benefits of a Smartphone and satisfy the needs of a freshmen students in their university, as they may not be aware of its system. Combining the gathered information and the mobile developed applications and the fast mobile network, the targets are to make mobile app Is the answer to any question, making an app for everything in the specified field, but as it classified as information application not as a E-Commerce app the trick is not to get a tangible profit of money or such, and as it will be a mobile app for android operating system, the high rating that the app will get on Google's android market is exactly what we are looking for in the early stages of releasing the app, also there will be no business clients to ask for their requirements, as it consider as a helping and supporting tool for an academic community, there will be only End-users and the best way to understand the End-Users needs and demands is to ask them, gather information about the idea that came in mind, which known as requirement specification, or information gathering which specify the scoop of the system. Some of the aims and goals has been little bit deviated along the way while working on the project, For instance the tool used previously mentioned earlier in (TMA-01) were (Dragon-RAD) as it has been replaced with (Eclipse) as it the best tool for developing an android mobile app code and GUI and also has an emulator that simulate the real mobile GUI, Java programming language will be used for coding the main app and XML for the GUI (buttons, frames, text fields, menus…..etc). Another changing in plans that were previously mentioned that is to use a SQL server database but as it mob app and no need for a huge amount of storage, we gave it a second thought to use SQL light database as it suites Smartphone and prevent from using internet to access the database as it will be implemented inside the app itself inside the mobile in the coding process. As this goals has been changed in the implementing phase when you are face to face with your target and need to take the first step forward towards the coding process. Some hindrances showed upon the surface that calls for decisions and choices to be picked such as attaching the name of the instructors and Doctor of the subject to enable the students to choose between doctors if there were a variety of them, but after giving a second thought we couldn't attach the names as we wanted to publish the app between the whole university braches and weren't be able to get the enough data about the tutors in the other branches. Also that we attempt to support the News tab in the app with an RSS link that meant to broadcast the latest updates, news and activities of the university to the students, from the LMS or the university website, but we didn't find any RSS link to support our application with, so we had to take a normal URL from the university web-site of the News page and attach it to the News tab instead of the RSS. As an ambition to generalize and spread the application between the college different majors (ITC, Business administration, English literature) we had to collect the whole three major courses to enhance the app and give it more efficiency than it would be if it were for ITC major only. The most looking forward feature as it consider the turning point of the project is to make an feature that can calculate the student GPA by this equation ∑𝑛 𝑖 =1 𝐶-𝑖.𝑃𝑖 ∑𝑛 𝑖 =1 𝐶𝑖 to be implemented in the code and do the GPA calculation, this feature will need the student to input the course name and Its degree then it outputs the total GPA, but this feature has an issue that it couldn't be done as it consist of enormous lines of code as it will take time and lots of effort to be achieved as the student will have to insert course name with its mark every time he want to check his GPA and we as a developers must implement the code by inserting all the course and its credit hour and name along with the mark was given that will be inserted also by the students every time he will need to know his GPA, so as input would be as follow (Track Name, Course ID, Course Name, Course Quota, Student Mark) Taking in consideration that using SQL light database which has insignificant amount of storage capacity as it will be stored in the device, also the GPA is now available on the LMS this semester. Why mobile app not a mobile website?! One of the questions that pop up, there is many privileges for both, for mobile app if attempting To develop a mobile game the best choice would be mobile app, fast to deal with as it restored as static data, high security as it need an authentication to give the developer a permission to market his app on the device app store or its market place by creating a developer account on the market place or app store, mobile Website, Have many privileges also such as its dynamic updates as it need enduring access to the internet, also can run through any device, but not as secure or fast as the mobile application. As for android is the Google market place. Also the mobile app need less access to the internet, the app store send a notification to the user that there's a new update available for this app so the user has to access the internet just once to upload the updates, and as an android it runs through many devices not a specific one like its competitor (IOS, Blackberry software) the IOS operating system only run through Apple I-Phones, and blackberry has its own operating system that called BlackBerry OS developed by the manufacture company (RIM). Use Case – Main Screen: This is the main activity that launches when the appliction starts, it contains 6 items, News, Coureses, Map, Media, About, Contact. Each item in this gridview when it’s clicked it launches another activity. it’s nice & easy UI for users. Use Case - About us: This task will make user be able to discover several things, He can discover AOU University vision, History & goals. User can discover also the concept of Open Learning which Open University based on, so he can have a clue how Arab Open University education system. the user can discover also the developing team which programmed the application and some information about them. Use Case – Contact Us: The user can find out in this task all conta ct ways for all A O U branches, the most famous two ways of communication is telephone & email, so we considered to put for each branch the telephone number, in addition to his email. and for the ease of use for the user, when he click on the number of the email, it automatically will turn it to a phone call or a sending mail view. Use Case – Map: This task I love the most, Google of course support Google map on Android, so we took benefit of this and make this activity which aims to mark all AOU branches on the map with AOU flag mark. When the user click on Menu a view will appear from down have a list of 7 countries with its flag (Egypt, KSA, Jordan… etc). when The user click on anyone of those list, the map will automatically (ZOOM IN) to this branch into the local streets of this branch. Use Case - Courses: The user can discover in this task all courses for a specific Academic, for example if he selected Information Technology & Computing, a list will be appear with all . Conclusion Summary: This report explained the aims of our project. It showed also in a brief way it’s structure and stages of developing. Database strategy was explained, in addition to its approaches and methods. Also we referred to alternatives and its advantages & disadvantages. We showed also in this report our modeling tools that we used, plus a brief explanation of every tool and what we did specifically with this tool. We also wrote our goals and targets, and why we did choose mobile application career, and what we have been through inside this great experience. The report contains also UML diagrams which explains the application more formally, in addition to Use cases and screen shots of the application itself with a small brief for every task in the use case. What I’ve learned I learned and enjoyed really Android developing, and am planning in sha’ Allah to take it as a career. References http://itouchmap.com/latlong.html http://en.wikipedia.org/wiki/Android(operating_system) http://en.wikipedia.org/wiki/SQLite http://developer.android.com/index.html http://en.wikipedia.org/wiki/Eclipse_%28software%29 End of Report