Pages 6 (1433 words)
Mobile learning as an intersection of Mobile Computing and E-Learning providing resources that can be accessed anywhere has capability in an excellent searching system, rich interaction and full support towards an effective Learning and performance based assessment. In the modern world of mobile technology and their increasing availability and affordability, mobile devices particularly Android platforms play an important role in the field of communication, entertainment and learning. It has greatly changed the functioning of the world, even the learning process.
Learning through mobile phones, abbreviated as Mobile Learning has become part of the educative system. Mobile Learning or M-Learning is a specific type of e-learning that provides educational materials through mobile phones. The purpose of this study is to access the learning materials, interact with faculties and view other related documentations along with other facilities, by using android based mobile phone inside and outside the classroom. This will also determine the users’ prior knowledge on the personal and educational use and application of mobile phones.
Our main aim behind this whole project is to exercise a proper way to bring forth all the necessary elements a student or a teacher requires to carry out his job efficiently. Our app named e-nlight will help the users gain knowledge about their past records, with which they can improve their way of studying and thus make the whole competition a lot healthier and much more inspiring. Through this app, they can also access all the publicly available academic resources like books from any department.
As a result, e-nlight will ensure the reach of education to every part of the institution regardless of any barriers.
- HARDWARE REQUIREMENTS :2GB RAM
- 2GB Hard-Disk
- JAVA-> Java SE
- Android SDK
- Android Studio
- SDK tools
In the development of this app, we have used the basic language of Android – Java, as well as XML for establishing the UI properly. This app is built on Android Studio and has taken the help of Firebase as the back-end service. We also needed a few libraries and permissions as well to make the best possible outcome of the built-in widgets. For further explanation of the logical implementation, snaps of code snippets have been attached with each feature.
Quick View of the Project
- Java (Android version)
Tools & Servers
- Android Studio
- Realtime Database
- Crash Reporting
- Cloud Messaging
- Google Play Services
We have used the following libraries to provide necessary functionalities to our m-learning app:
The main libraries are briefly discussed below:
- com.android.support: design: 25.3.1: This is the Android Design Support Library. Above SDK version 23 there are some new built-in design library for android app development. This is called Material Design.
- com.android.support: cardview-v7:25.3.1: This is a special feature of the Material Design which allows the developer to make GridViews and ListViews with smooth transitions and attractive edges.
- com.android.support: palette-v7:25.3.1: This is a library from Android that can be used to extract prominent colors from an image. It has helped us to get the right colors for the vibrant look of our app.
- com.android.support: customtabs-v7:25.3.1: This support library manages the initialization and use of custom tabs in the UI, especially for TabHosts and TabLayout.
- com.android.support: design: 25.3.1: This library allows the use of various necessary UI materials of Material Design for this app, like Navigation Drawer and nested tabs.
- com.google.firebase: firebase-core: 11.0.2: This is the most essential library for this app because this and its branches provide us a number of the Firebase services. Firebase is a mobile backend service which takes care of the database, storage, analytics, crash reports, authentication and more for an app, built on Android, iOS or other platforms. We used its services to keep track of our authenticated users, maintaining user access privilege and keeping an updated database and files storage in real time.
- com.firebaseui: firebase-ui: 2.0.1: This is the Firebase UI library specially developed for Android applications. It is in fact a set of open-source libraries from Google with Apache 2.0 license, which lets the data on your app be updated in real time based on the Firebase Database. It also lets the developer use other sites’ information for authentication such as Google, Facebook and Twitter.
- com.prolificinteractive: material-calendarview: 1.4.3: We needed this library to use the customized calendar view, so that we can mark the necessary events for students and faculties with different color codes.
- com.jjoe64:graphview: 4.2.1 : To implement the results graph, we needed this library which provided us with line graph, bar graph and pie charts.
Here are the permissions our app requires from the user’s device to run this app.
The user will be prompted with a list of these permissions while installing and s/he can choose to grant them.
- android.permission.GET_ACCOUNTS: Since the minimum SDK our app allows is API 19, we need this permission to get any detail about the user accounts in the Accounts Service. From API 23, this is not required anymore if the authenticator shares the signature with the one managing the account.
- android.permission.READ_PROFILE: This permission is to perform queries on the information of the user who owns the device.
- android.permission.INTERNET: This app cannot extract the database information and storage materials from the cloud if no internet is present. So this permission to use the internet is essential.
- android.permission.READ_EXTERNAL_STORAGE: To upload files like documents and images from the external storage, we need this permission. This will be specifically helpful to the faculty members.
- android.permission.WRITE_EXTERNAL_STORAGE: To download the storage files into the external storage like microSD card, we need this permission. This will especially be helpful for the students.
- android.permission.READ_CALENDAR: We need this permission to get the current date, day and time in order to display the right events in the Event Display section of our app.
- android.permission.WRITE_CALENDAR: This permission helps us to add new information to the default calendar of the device and thus help us to add important events to the calendar.
- com.android.alarm.permission.SET_ALARM: This permission is necessary to set alarms automatically according to the event dates shown in the calendar. As soon as there is a new event added in any of the assigned courses, this will be used to set an alarm at 8am of the due date.
This is an overall step-by-step view of how the different aspects of the app work:
Extracting data from institution database and replacing the dummy data with it
For all users : Authenticate by
- email and password
- google sign in
- specific user role
- Student’s database initializes
- Else if user_role=teacher:
- Teacher’s database initializes
Navigation drawer clicked:
- Header image, title and subtitle displaying user name and email.
- Drawer section displaying current course titles and logout option.
Files ? storageReference.department.course.section
– accessed and displayed in Navigation Drawer Fragments
- If user_role=student
- Download all button’s visibility = ON
- Upload button’s visibility = OFF
- Download all button’s visibility = OFF
- Upload button’s visibility = ON
-Main features visible in one screen
Data from completed courses:
- Students Reference ? user email ? courses completed
- course name
Current routine clicked:
- if user_role=teacher Courses = teachers
xstudentsDatabase.studentsEmail.assignedCourses For each course in courses:
find course database reference from departmentsDatabase.departmentName.courseName
save it to courseRef?) courseNameTab.content = couseRef.routine
f) Notification clicked: display any change to following branches.
Full Manipulation of course materials by teachers
Faculties of the respective institution can upload, download and edit the corresponding course materials through this app.
Downloading and selective uploading of files by students
Students of the institution can only have the full access to download course materials and occasionally upload submissions if allowed by the respective course teacher.
Specified user privileges
Not all users are allowed all functionalities of this app. Their roles and privileges are specified acutely through Firebase rules.
Whenever a new document is uploaded in any assigned course or whenever an important event is added, the users get push notifications through Firebase Cloud Messaging.
Online library of academic books and other documents
From Firebase Storage, all available books and other academic documents of a department are made accessible through this app.
Working of the app
The first phase involves the sign-in to the application, to enable their personalized e-learning services. Sign-in can be done either by signing up through the required credentials or directly through the google authentication.