Download Final Project Report

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Concurrency control wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

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