Learning Management System as an Extension Module for ...
Transcript of Learning Management System as an Extension Module for ...
i
Acknowledgment
Before going any further on this report, I would like to acknowledge the people who
contributed to the success of this capstone project. First, I would like to thank Professor Omar
Houssaini Iraqi for suggesting the idea of this project and helping me throughout the semester in
order to deliver a successful project. I would also like to thank him for providing me with all the
necessary assistant and knowledge in Network and Internet Technology which made the basis of
my project. I would also like to thank the community of Stackoverflow and Github who provided
solutions to problems I was facing during the implementation phase.
Last but not least, I would like to thank my friends and family who supported me
throughout my years here in AUI and helped me get through the stressful times.
ii
Table of Contents
Abstract ........................................................................................................................................................ iv
1. Introduction .......................................................................................................................................... 1
2. OpenERP (Odoo) ................................................................................................................................... 2
2.1. What is Odoo?............................................................................................................................... 2
2.2. Why Odoo? ................................................................................................................................... 3
3. Development Cycle ............................................................................................................................... 4
4. Plan........................................................................................................................................................ 5
5. Feasibility Study .................................................................................................................................... 6
5.1. Benefits ......................................................................................................................................... 6
5.2. Cost and Risks ............................................................................................................................... 6
5.3. Outcome ....................................................................................................................................... 7
6. Requirement Specification .................................................................................................................... 7
6.1. Functional Requirements .............................................................................................................. 7
6.1.1. Use Case Diagram ..................................................................................................................... 8
6.2. Non Functional Requirements .................................................................................................... 10
7. Technology Enablers ........................................................................................................................... 10
8. Architecture and Design...................................................................................................................... 12
8.1. Application Architecture ............................................................................................................. 12
8.2. Entity Relation Diagram .............................................................................................................. 12
8.3. Android Application Design ........................................................................................................ 15
9. Implementation Progress.................................................................................................................... 17
10. Implementation Results .................................................................................................................. 20
11. STEEPLE Analysis ............................................................................................................................. 24
11.1. Social ....................................................................................................................................... 24
11.2. Technology .............................................................................................................................. 24
11.3. Economic ................................................................................................................................. 24
11.4. Environment ............................................................................................................................ 24
11.5. Political .................................................................................................................................... 25
11.6. Legal ........................................................................................................................................ 25
11.7. Ethical ...................................................................................................................................... 25
iii
12. Future Work .................................................................................................................................... 25
13. Conclusion ....................................................................................................................................... 26
14. References ...................................................................................................................................... 27
iv
Abstract
It has always been a struggle for students and specially parents to check the performance
of the kids in school since they had to drive all the way to school to talk to the professors or the
principle. However, we have witnessed a great shift in technology for the past century which
made our lives much easier. With a click, you can buy anything from your favorite store, order
from your favorite restaurant and even stay updated with your school work.
Odoo which is formally known as OpenERP is a powerful platform that exposes its web
services to developers to they can design application efficiently on different platforms. I’m using
Odoo’s web services to develop a mobile application called OdooEducation that will save a lot
of trouble and time for students and their parents in schools. With this app they will be able to
authenticate to their accounts where they will brows a menu so they can check their attendance
records, assignments, announcements and grades.
1
1. Introduction
In today’s world, everything and everyone uses technology to perform many tasks and
one of them is communication. It helps people keep in touch with their loved ones, with their
work, with their environment and with the world in general. Moreover, technology has facilitated
everything today by just a click you can do wonders.
Educational establishment are no exception when it comes to using technology, they have
developed websites and Facebook pages to keep in touch with students, parents, staff and anyone
overall who is interested in their establishment. However, not all of these establishments have
integrated themselves in this world of social media and that is due to several factors.
This is where the project comes in handy; the idea of this project is to develop a mobile
application that enables students or their parents to access their school records. It will allow them
to check their attendance record for a specific course they are enrolled in, check assignments,
check grades and check announcements or news related to a course or school in general.
The main purpose of this project is to bring comfort and ease to the user so they can perform the
various tasks mentioned above just by a button click on their smart phone in the comfort of their
homes. They won’t need to get in touch personally with the professors or the principal as it can
be a hassle sometimes, but rather browse the application on their device.
This application will be within a new module which is “Education” that leverages existing web
services provided by a powerful platform OpenERP (Odoo) through its web services’ API.
2
2. OpenERP (Odoo)
2.1. What is Odoo?
Odoo (ex OpenERP) is a comprehensive suite of business applications including CRM ,
Warehouse management, Sales, Manufacturing, Project management, Human Resources,
Financial management, etc... Odoo offers a variety of choice of hundreds modules. Odoo is
available on-site or in the cloud and is suited mostly for small to mid-sized companies. With
more than hundreds of installations/downloads per day, Odoo is one of the most used open
source software around the globe. It is flexible, can be adapted easily to any needs and has a
dynamic community. Thanks to Odoo’s ease of use and modularity, it can be rapidly put in
production.
Odoo was published first under the name of OpenERP and TinyERP, where ERP stands for
Enterprise Resource Planning. An ERP is a generic software that is flexible to any modification
and customize and fulfills generic needs. Odoo is a modular system where its services are
represented as modules, and the ones that are necessary come installed with the ERP and can be
adapted to the workforce and growth of the company that uses the system. Odoo has a powerful
process engine which allows the allocation of validation modes, tasks and deadlines. According
to the ERP’s official website, Odoo has 5525 module; production management, logistic, human
resources, accounting, management control, payroll, customer relationship management or CRM,
marketing, inventory management, documents management, etc. Odoo is used by many
organizations such as Hyundai, Auchan, Sodexo, Danone, Veolia, and many others.
Odoo is represented in 120 countries by more than 550 partners, and it is used by almost
2,000,000 users.
3
Odoo is known for a number of features such as:
Social networking
Website creation using CMS
Employee assessment and evaluation
Recruitment process
These and other features are exploited by the users to make the management of their business as
organized and smooth as possible.
2.2. Why Odoo?
Odoo insures a significant progress and growth for the organization/company that decides to opt
for it it as a management system for its transactions and businesses:
Odoo boosts the productivity and reactivity of the services given any entity that uses it
thanks to its robustness in managing the various aspects of the business.
Odoo also optimizes the internal process thanks to its well designed structure, which
allows the company to invest more in opportunities and save its operational resources.
Its internal structure ensures a flow of information among the different departments in a
company which ensures the consistency and coherence of the information. Therefore an
external and internal communication.
Odoo boost the motivation and productivity of a company’s staff since all the basic work
is already performed by the ERP.
Odoo gives an advantage to the company that adopts it since it is a powerful and robust
software which makes it a nontraditional company.
4
Odoo is open and flexible to any changes the company may which to perform on it. New
modules can be developed, or installed, according to the company’s specific needs.
Odoo is open source.
Odoo uses open and modern technologies: PostgreSQl, Python, developing competitive
mobile interface and strong integration of web services.
3. Development Cycle
The steps that need to be followed in order to reach the final software product are the following:
Feasibility Study
Through this phase, we will be gathering the necessary specifications of the mobile
application and analyzing them to conclude if the application is feasible or not
Requirements
Through this phase, we will be translating the specifications gathered in the feasibility
study phase into specific requirements that would be later translated to functionalities to
be implemented. This phase is also about grouping these requirements into functional and
non functional.
Architecture and Design
In this phase, we will be deciding about the tools and technology enablers to be used
along with getting familiarized with the new ones.
After that, we will be designing the application’s architecture along with specifying its
components and the protocols and API’s to be used
5
Implementation and Testing
In this phase, we will start translating the system’s requirements into implementation.
Then comes the testing phase to detect any possible anomaly in the system that hasn’t
been detected before.
Delivering the final mobile application as the final step.
4. Plan
Week(s) Objectives
1 Project setting and agreement with the
supervisor
2 Feasibility Study: Gathering the initial
specifications of the project
3 Requirements’ phase: Gathering more
requirements and studying the feasibility of the
project
4,5,6,7 - Getting familiarized with the new
technologies to be used in the implementation
- Architecture and Design phase
-Submission of the interim report
8,9,10,11,12 - Implementation phase
13 -Work on the final report of the capstone
6
-Getting ready for the project defense
-Testing phase
14 Project defense.
15 Checking the whole work and make changes if
needed.
Table 4: Capstone project plan
5. Feasibility Study
5.1. Benefits
It has always been a struggle for students in school (primary, secondary, high school) to
keep up with school records in terms of grades, GPA, attendance and so on not forgetting their
parents who constantly want to check their performance but didn’t have an easy access.
Nowadays, technology had made a great turn and became very essential in anyone’s life, where
you can access anything from your mobile phone. This application will allow these users to
perform many read mode only tasks for a client perspective, and it will also introduce me to the
world of android development as well as working in a professional framework
5.2. Cost and Risks
A good planning and a wise time management are what the application would take to see the
light at the end of Spring 2016. The tools that will be used are free and open source which will
reduce the cost. The only constraint is time; three months for the implementation of a
professional mobile application using tools I have never worked with. Another challenge worth
mentioning is that the realization of the project will be done in parallel with three regular classes.
7
5.3. Outcome
As an outcome from this study, I came to the conclusion that this project is feasible.
Because I was able to narrow down the specification and conduct a well planed study about this
project. In addition that this project uses many existing open resources that I will be leveraging
which will make it easy.
6. Requirement Specification
After studying the feasibility of the project and making sure that its realization is possible
within the duration of the spring semester and using the tools and facilities which are available, I
had to collect the requirements of the application, and this task was accomplished under the
supervision of my supervisor.
6.1. Functional Requirements
The application should allow the student or their parents to:
Login
In order to access the application the students or their parents need to authenticate through a
login page that will allow them to perform different tasks provided by the application. After the
user authenticates the server loads their information concerning their courses, assignments,
grades, attendance records and any announcements available at that time.
Consult Courses
8
After the login, the user will be able to browse through their courses on a read only mode in
order to check any information provided by the server.
Consult Attendance Records
This service is meant for the parents especially so they can consult their kids’ attendance
records and be updated about their kids’ performance.
Consult Grades
This service will allow students or parents to check course grades and especially each
assignment’s grade
Consult News and Announcements
This will allow the user to see any news or announcements related to their course or school in
general depending on its type. Once they’ve logged in they will be directed to a page that has
announcements where they will be able to click on a specific one to get more information about
it.
Get Notifications
Using Google notification, this will allow the user to get notified each time there is
something new in the server side: They will be notified if there was a new announcement, new
assignment, a grade that has been assigned to an assignment and so on.
6.1.1. Use Case Diagram
9
Figure 6.1.1: Odoo Ecudation system’s use case
The users which are either the parents of the student or the student are the actors and they will be
able to authenticate and access the account where they will be able to perform the action above:
Check Courses, Check Assignments, Check Grades, Check Attendance and Check
Announcements
10
6.2. Non Functional Requirements
Access channels: the application should be a client mobile app running under Android
Security:
o Confidentiality: Performed operations should be confidential
o Integrity: Protection against unauthorized modifications
o Availability: Available when needed, no single point of failure
Integration: the application should use web services provided by OpenERP and Google
notification
7. Technology Enablers
Since I’m designing the client side application there will be fewer technologies involved in this
process.
The mobile application needs a mastery of Android, because it is an
open source operating system that was developed by Google for
cars, TVs, smart watches and smart phones. Most of today’s smart
phones operate on Android which holds a huge market share. The
IDE I will be using is Android Studio.
11
Along with that I will be using Apache XMLRPC to access the
web services provided by the server OpenERP (Odoo).
Odoo formally knowen as OpenERP is a powerful platform that
exposes its web services to ease the creating of applications that will
help the good management of businesses. This server will be accesses
by Apache XMLRPC.
PostgreSQL is a DBMS that is used by Odoo so I won’t be dealing with is
directly but through the server.
As we are in the third week of the semester, learning how to work with these tools should be
done in parallel with requirements’ gathering and analysis.
12
8. Architecture and Design
8.1. Application Architecture
The application uses the web services provided by OpenERP which are accessible using the
XML RPC under an MVC model.
Figure 8.1: Odoo Education’s architecture
8.2. Entity Relation Diagram
Even if I’m using Odoo’s web services that will allow me to access the DBMS easily, I
need to create entities to meet the application’s requirements.
13
Figure 8.2: Entity Relation Diagram
The description of the entities:
Student: This is an entity that inherits from the partner’s entity that already exists in
Odoo, this way I won’t need to create another entity that represents the student’s account because
partner already has a user account. This will allow the easy authentication where the user will
enter their credentials and it will be checked at the level of the server Odoo.
Course: This entity represents the courses taken by the student that has a course id Cr_id
and Cr_info that represents the information about it (Pre-requisite, what is the course about,
etc…)
14
Section: This entity is linked to the Course entity by a relation of 1 to many and it has a
section id and the Cr_id as a foreign key, it also has the name of the professor it is teaching, the
time and the capacity.
Professor: This entity represents the professor that teaches a specific section of a course
it is linked to the Course through two entities which are the bridge entity Taught by and the
Section entity.
Taught by: This is a bridge entity that represents the relation between a Professor and a
Section and by that we mean that a professor teaches a section or many and the other way
around.
Enrolled in: This is another bridge entity that represents the relationship between a
Student and a Section which is that a student enrolls in one or many section and a section has one
or many students.
Announcement: This entity represents the announcements specific to a section and it has
an id Ann_id, Sec_id that represents the section that is concerned with the announcement and
announcement information
Coursework: This entity represents the relationship between assignments and section
and it has an id Crsw_id and Sec_id that represents the section it belongs to.
Grade: This entity represents the overall grade of the section specific to a student and it
is linked to the coursework where Crsw_id is the foreign key.
Assignment: This entity represents the assignments a coursework has and it has a grade
and a type.
15
Type: This entity is specific to assignment because it shows the assignment type and the
grade percentage it makes from the overall grade.
8.3. Android Application Design
Android studio provides a user interface that is built around activities and each activity
related directly to the application’s functional requirements. The first activity is the Login
activity which represents the login functional requirement that will allow the user to authenticate
and redirected to their account’s space where they can perform various tasks according to the
functional requirements.
Figure 8.3: Odoo Education’s design
Activity description:
LoginActivity: This is the first activity that pops out when you run the application; in this activity
the user is required to enter the credential to access their account
16
Menu: After the user logs in, there is a fragment shown which the AnnouncementFragment then
there is a small icon that when the user click it shows a navigation drawer that the user chooses
from and gets to a specific fragment that leads them to a specific activity.
AnnouncementFragment: This fragment shows a list of announcement fetched from the server
that when clicked lead to the AnnouncementActivity that shows more information about that
specific announcement.
AnnouncementActivity: This activity shows more information about a specific announcement
clicked from the list provided in the AnnouncementFragment.
GradesFragment: This fragment shows a list of courses fetched from the server that when the
user clicks it leads them to the GradesActivity which shows each course’s grade.
GradesActivity: This activity shows the grade of a specific course from the list provided in
GradesFragment.
AssignmentFragment: This fragment shows a list of courses fetched from the server that when
the user clicks they get directed to the AssignmentActivity which shows the list of assignments in
each course clicked.
AssignmentActivity: This activity shows a list of assignments along with their grades if found to
a specific course clicked in the previous fragment.
AttendanceFragment: This fragment shows a list of courses fetched from the server that when
the user clicks they get directed to the AttendanceActivity which shows the attendance record of
the course clicked.
17
AttendanceActivity: This activity shows a record of attendance to a specific course clicked in the
previous fragment.
CourseworkFragment: This fragment shows a list of courses fetched from the server that when
the user clicks they get directed to the CoursesActivity which shows information about the course
clicked.
CoursesActivity: This activity shows information about a specific course clicked in the previous
fragment.
LogOutFragment: This fragment when clicked the user will be logged out from the application.
9. Implementation Progress
The implementation phase took place in the last three months with the supervision of my
supervisor. It was about designing different Android activities which are similar to web pages,
designing and implementing the database in Postgres and accessing them using the web services
provided by OpenERP API (Odoo) through XMLRPC calls. Whenever I created and activity or
added a functionality, I would test it either using an android mobile phone or the emulator
provided by the IDE Android Studio to get an idea about how the application looks like on the
client’s mobile phone.
18
Figure 9.1: Testing the application on a mobile phone
Since the application requires access to internet in order to access the database, I had to add a
piece of code in the AndroidManifest.xml file because this file presents important information
about the Android application along with the Android system such as content providers,
permissions, activities and classes, so that the application is granted the permission to open
network sockets and communicate with OpenERP server.
Figure 9.2: Adding the INTERNET permission
In order to access the web services provided by Odoo I had to add special libraries as the
screenshot shows.
19
Figure 9.3: Adding the necessary libraries
To make the application user friendly I added a navigation drawer that is accessed by a simple
slide which will lead the user to wherever fragment as shown in Android application design
section.
This screenshot shows the icons along with the different menu items that the user can click in the
activity_welcome_drawer.xml under the menu folder that is located under the res folder:
Figure 9.4: Designing the items of the menu
20
This next screen shot shows that there is a switch case in the Menu activity that based on the
click of the user it redirects them to a fragment:
Figure 9.5: Switch case of the menu
10. Implementation Results
This part shows the result of the process that begins from gathering the initial
specifications until the end of the implementation phase. It shows how the application met the
requirements specified in the application requirements section above. Below are screen shots of
the application along with a description of their functionalities.
21
Figure 10.1: Login page Figure 10.2: Login succeeded
Figure 10.3: Login failed Figure 10.4: Slide menu
22
Figure 10.5: Announcement page Figure 10.6: List of courses in Coursework
Figure 10.7: Computer Architecture information Figure 10.8: List of courses in Assignments
23
Figure 10.9: Literature assignments Figure 10.10: List of courses in Grades
Figure 10.11: Physics II grades
24
11. STEEPLE Analysis
The STEEPLE analysis consists of looking at seven external factors that are to affect or
might be affected by the business. In fact, before implementing the project, we should be aware
of how it can interact with the macro-environment which opens up our eyes on the possible risks
and challenges that we might be facing in later phases.
11.1. Social
The application will insure effective communication that will allow students, their parents and
the school to communicate information in a convenient way and less time. It will be a solution of
any conflict in time or miscommunication that could be raised.
11.2. Technology
The application will introduce a service that is accessible by one click which will allow clients
(students and their parents) to consult any matter that relates to grades, assignment, news and so
on from the comfort of their home. Schools will be encouraged to get more in touch with
technology in this domain more than ever.
11.3. Economic
For the time being, the application will be free in the app store but it does use commercial
resources that are free of charges.
11.4. Environment
This application would have an indirect effect on the environment. In fact, parents won’t have to
go to the school in order to consult their kids’ performance. The application will make them find
solutions for their needs while reducing their mobility, and so the environment pollution.
25
11.5. Political
The application depends on the policies and regulations of the educational system in Morocco.
Any changes in these regulations will affect the content and hence the services that it will
provide.
11.6. Legal
The application is based on respecting the educational system law in Morocco; it should support
the constitution written laws and not provide any content that would be considered illegal.
11.7. Ethical
The application will allow parents to easily follow up on their kids’ performance in school; in
addition to providing better communication between the parents and the teachers.
12. Future Work
Due to time constraint, I wasn’t able to implement Attendance. However, this is a requirement
that I will be implementing in the future along with many new features to make this application
adaptable to technology changes.
26
13. Conclusion
Being able to develop such an application was a big and important step in my academic
career, I was able to apply the knowledge I accumulated throughout my studies in AUI and learn
new concepts and put them to test. By doing so, it made me accumulate even more knowledge
that will come in handy in my professional life. This was also a great opportunity to experience
the professional environment because I was supervised and expected to meet a firm deadline to
deliver this project. Even if it was stressful, it was a great preparation for my professional career.
This is one of the most fruitful courses in AUI and I’m thankful to everyone who made it
happen.
27
14. References
About Us - Odoo. (n.d.). Retrieved May 01, 2016, from
https://www.odoo.com/fr_FR/page/about-us June 12, 2015
Activity. (n.d.). Retrieved May 01, 2016, from
http://developer.android.com/reference/android/app/Activity.html
Gturri/aXMLRPC. (n.d.). Retrieved May 01, 2016, from
https://github.com/gturri/aXMLRPC
Information technology — Software product quality. (2000). 1st ed. [ebook] ISO / IEC
JTC. Retrieved from http://www.cse.unsw.edu.au/~cs3710/PMmaterials/Resources/9126-
1%20Standard.pdf Mav 01. 2016.
OETouchListener. (n.d.). Retrieved May 01, 2016, from http://openerp-
mobile.readthedocs.org/en/latest/getting-started/library/pull_to_sync/index.html
Roes, T. (n.d.). Tim Roes. Retrieved May 01, 2016, from https://www.timroes.de/
Web Service API. (n.d.). Retrieved May 01, 2016, from
https://www.odoo.com/documentation/9.0/api_integration.html
What is Odoo / OpenERP? | ERP CRM Software Longwood Orlando Florida. (n.d.).
Retrieved from http://www.sodexis.com/services/what-is-odoo-longwood-orlando-florida.html
May 01, 2016.
XmlRpc. (n.d.). Retrieved May 01, 2016, from
http://www.apache.org/dyn/closer.cgi/ws/xmlrpc/
28
XML-RPC Web services. (n.d.). Retrieved May 02, 2016, from
https://doc.odoo.com/6.0/developer/6_22_XML-RPC_web_services/