Cloud-based Education System

— Cloud computing model is used for enabling convenient as well as on-demand network access to a shared pool of computing resources that can be quickly allocated and deployed with minimum efforts. Online compilers using cloud computing eliminates the problem of portability and storage space. This model provides the programmer the capability of using different compilers and to pick up the fastest and most convenient tool to compile the code and debug the program. Moreover, the web-based application being proposed can be used remotely through any network connection and it provides platform independence. The error/output of the code is store in the most convenient and efficient way. Also, the manual process of installing the compiler on each computer is avoided. By using this application we can also conduct online practical examination.

We are proposing a model for a cloud-based education system to provide a platform for students, teachers and the university which can aid in the learning process. Our system consists of many modules such as online compilers, live practical examinations and automated attendance-taking and online study materials. The student just needs to login to his/her account and can make use of the available facilities. Similarly, provisions are made for faculty access. Our Computer Assisted Education model is based on cloud computing and its different services.
At the core of our system the following modules are present: a) Online compilers for compiling programming languages such as C, C++ and Java etc. b) A live practical examination module which can aid in real-time conducting of a university practical examination. c) An automated attendance-taking system with which the faculty member can take attendance with the help of a user friendly app. d) Important notice uploading feature for the university as well as the institute.
e) Study materials such as presentations, PDF files and links to educational resources. The cloud based system being proposed can be deployed in colleges and can even be scaled up to the university level. The system can efficiently manage various aspects of the education process. It is centralized and thus all the students of a college or a university can efficiently make use of a single system for all purposes.
The system being proposed will make use of the cloud infrastructure which itself will provide the distributed computer system features. The implementation of the infrastructure is abstracted from our system and we only have to concern ourselves with how to deploy our application on the cloud.
The proposed system overcomes the major drawbacks in the traditional manual method of the education process. Moreover, as technology improves day by day, we must advance our learning methodologies along with it. The system helps in achieving these goals. Efficient maintenance and management can be achieved using the proposed system.

A. Cloud Computing
Cloud computing is evolution of utility and grid computing. Utility computing delivers the renting of on demand-computer resources. While grid computing provides a high-performance system by combining multiple computing resources, distributed in various locations over the net, to compute very big computational problems. IT technologies such as Service Oriented Architecture, Virtualization models are also used in key concepts of cloud computing. It delivers IT resources, such as networks, servers, storage, software, applications, and documents. Cloud computing can provide various additional features such as flexibility, scalability, accessibility, high performance, reduces operating costs and implements green environment. It allows users to access any resources by paying for what they need, rather that purchasing the resources directly.
The National Institute of Standards and Technology (NIST), has defined five essential characteristics, three service models, and four deployment models in its definition of cloud computing. The five essential characteristics consist of ondemand self-service, rapid elasticity, measured service, wide network access, and resource pooling. The four deployment models are public, hybrid, community, and private cloud. Finally, the three service models include Infrastructure as a Service (IaaS), Platform as Service (PaaS), and Software as a Service (SaaS).

B. Online Compiler
Compiler runs a program and converts them from text to executable format. To install compiler manually on each system requires lot of physical work and space. As soon as the program is compiled it becomes platform dependent.
Aamir Nizam Ansari, Siddharth Patil, Arundhati Navada, Aditya Peshave, Venkatesh Borole-"Online C/C++ Compiler using Cloud Computing" [1]: This system provides two layer in its architecture, lower layer and upper layer consisting of clients and servers respectively. The system is platform dependent and works on windows as well as linux operating system. It reduces information overhead for the end-user, also has greater flexibility, reduced total cost of ownership and ondemand services with other advantages. The project provides online compilers for institution or organization, also provides database to store codes. It uses OCC (Online Centralized Compiler) technology.
A. Rabiyathul Basariya, K.Tamil Selvi Computer Science and Engineering, Sudharsan engineering College-"Centralized C# compiler using cloud computing" [6] : Three tier architecture of cloud computing model is used to build this system. The architecture consists of data layer, business layer and application layer. Data layer contains account information of users. Business layer acts as decision making, while Application layer acts as interface. A feature called Code Document Object Model (CodeDom) is provided by .NET framework. This system is platform dependent and works on windows operating system. It uses Code-Dom technology.
III. ONLINE COMPILER An online compiler is a compiler which is deployed on the Internet. It can be deployed using a web-based application. A compiler is a computer program (or a set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language), with the latter often having a binary form known as object code.
Organizing files is a major issue in software development. Students have to compile and run many programs every day and they need to store these files on flash drives. Students often lose their data when they misplace their flash drives. This is why we are proposing a cloud based solution. Moreover, programs can be compiled from anywhere with just a computer and an internet connection. Students need to focus only on the coding process and not on unnecessary tasks like installing of software like compilers. Auto-save capabilities can create a backup of the code which is useful in case the internet connection fails. Programming can be done using any device and the output can be viewed on the device as we are using a web browser to display it.

IV. PROPOSED SYSTEM A. Proposed System
The proposed system is a web-based application that consists of modules such as online compilers (which are deployed on the cloud), department-wise notice module, an attendance taking application, practical examinations module.
A web page will provide a user friendly UI for the student. Each student will have their own account and will be able to access their files through a user id-password combination. Once the user is authenticated, he will be able to access the modules discussed above. A text editor on the webpage will be used to type the code that needs to be executed. Once the user finishes typing the code, he can click on the submit button which will run a PHP script on a web hosting server that sends a file consisting of the typed code to the cloud. The online compilers are deployed on the cloud and they compile the code and store the output in a file. The output file is retrieved by the PHP script running on the web hosting server and is displayed on the webpage.
The practical examination module is a novel technique which will allow colleges to conduct practical examinations online. The advantage of using this module is that it will be harder for students to cheat during the examinations. Also, problem statements will be assigned to students such that two adjacent students will not get the same problem statement. To design the web-based application, a webpage will be created containing links to different modules. PHP will be used to link cloud services to the web-based application. Educational institutes and any individual can access the web-based application through their personal accounts. Privileges will be assigned on the basis of the designation of the individual.

1) Product perspective: a) User account:
The system allows the user to create their accounts in the system. Some of the user accounts have special privileges such as teacher or institution level privileges. b) Number of users being supported by the system: The system is able to support a large number of online users at a time.

c) User Interfaces d) Web-based UI, Android application UI e) Software interfaces 2) Memory Constraints:
Cloud based model does not have any memory constraints, if there is more traffic we have to pay the cloud service provider more for server space.

B. Modules
The major inputs to the system would be in the form of text and through clicking on buttons in the GUI. Output of the system is compiled code, attendance records. The system provides the following modules:

1) Automated Attendance Application:
Taking attendance is a manual and tedious task for teachers in colleges as they have to carry separate books to maintain attendance records. Moreover, many errors are introduced in the attendance data.
An Android application would be installed on the teachers' smartphone. This Android application provides features such as single-click attendance, a simple user interface and cloudsyncing, the disadvantages of the manual method can be overcome. Statistical information in the form of reports can be produced using the collected data such as average attendance of a student for the past few months.
A backup of the attendance can be stored on the cloud to ensure reliability of the data. Also, the attendance details can be viewed on a smartphone or any other device. We can add more features to this application in the feature, such as SMS notifications-which will be sent to a student to warn him/her that his attendance is below the minimum.

2) Notice Uploading:
The online portal will allow uploading of important notices and instead of all the notices being centralized, each department will have its' own department-specific notices. Students can stay up-to-date with the latest updates from the university.
This module allows a student from the Computer Engineering department, for example, to view notices regarding the Computer Engineering department. The student does not need to search for his particular departments' notices.
Teachers will have special privileges which can be used to upload the notices. Students will have restricted access so that they can only download the notices and not modify them. Currently, the university does not have a department-specific notice system. This makes it difficult to find his/her departments' notices. All these disadvantages can be avoided by incorporating this module into the system.

3) Learning/Study Material:
The learning material module would include: Subject-wise PPTs, textbooks and reference books in a PDF format, video tutorials, code samples, practice tests.
Students have to run helter-skelter to obtain study material. Sometimes, just a few days before the exam. This module will contain all the necessary study material which can be downloaded by the student. Faculty members may even upload a PPT of their lectures. This greatly helps the student in the learning process because even if he/she missed a few points, he/she can obtain a complete transcript of the lecture.

4) Online Practical Examination:
This module is an important feature of the system which enables colleges to conduct cheat-proof practical examinations online. Since a webpage is being used for conducting the practical examination, any event that happens on that particular page can be detected-such as minimizing, closing, or switching tabs. Also, insertion of external flash drives can also be detected. All attempts to cheat are logged and are submitted to the invigilator.
Traditionally, the external examiner needs to visit each students' computer to check their code. As everything is centralized, the external examiner just needs to login to his/her private account and check the code. This saves both time and energy and improves efficiency in the conducting of practical examinations.
This module uses online compilers to compile code. The interface provides text editor, various GUI buttons, output window, timer etc. Features of online practical examination module: a) Allotment of Problem Statement: Problem statements are alloted automatically .Virtual chart of Lab is generated through ip-address of systems present in lab. This chart is then used to allot problem statement in such a way that no two consecutive systems are allotted same problem.
b) External drive detection: Logs are checked continuously to detect any connected external flash drive. If any drive is detected, the system will inform invigilator and also will not allow that student to continue exam untill invigilator allows.
c) Switching Tabs: This problem arises with online compiler, as students can use internet to cheat in examination. This module detects switching of tabs by constantly monitoring logs generated by respective browser. d) Timer: With this feature, a fixed time can be provided automatically for examination. e) Storage: Programs executed by students are stored automatically on cloud and can be accessed by invigilator and external examiner.

C. User Profiles 1) Students:
Lowest level of privileges and permissions for student accounts. Students can compile their code, view notices, download study material and check their attendance through the web portal.
2) Faculty Members: Higher level of privileges and permission that students. Faculty members can generate reports of monthly attendance and can upload important study material. Faculty members can start a practical examination session through which students can be tested.

D. Functioning
The initial state is for logging in, here the user is unauthenticated and must enter his/her username and password to get authenticated. New users can register by providing details like email id, mobile number, name, roll-no etc.
Another state is the examination state. Here, students implement programs in an editor, the code is compiled and executed and the output can be viewed. In this state, the cheatproof security measures are implemented to ensure students cannot copy. Students can also save data like programs to their accounts to view later. Public Cloud storage is used to store study material uploaded by faculty members in an organized manner CONCLUSION In this paper, a cloud based education system formed by integration of various modules such as online compilers, an automated attendance application, notice uploading and practical examination modules is proposed.
Compilers do not need to be installed on individual computers and students' only need to login to their accounts to access the compilers.
This system saves both time and effort of colleges, faculty members and students by managing all the aspects of the education process on the cloud.

FUTURE SCOPE
The proposed system can be extended to support additional features such as: The Android attendance application can store all of the data on the cloud, so that the data does not need to be stored on the teachers' device. The Android attendance application can also have a feature to send an SMS to a student with his/her attendance for the month, eliminating the need for students to keep checking the notice board for attendance notices. Students can send an SMS to the system and their respective attendance is replied back in the form of an SMS.
The online compiler module can be extended for more programming languages such as Python, Ruby etc. Colleges host many events annually and other college students are sometimes allowed to participate in such events. Traditionally, students from one college have to campaign at other colleges. Using the online portal, colleges can post events publicly and can access a larger audience. The cloud based system can be scaled up for use by many universities and can prove to be a viable alternative to the traditional method of education. Education must evolve with the available technology, this system helps to achieve this goal.