You are on page 1of 24

CODIFICATION ENGINE - Online Coding

Platform
PROJECT REPORT – PHASE I

SUBMITTED BY

AAHIL R 16F101

DEEPAN V 16F110

SACHIN NANDHA SABARISH J 16F140

in partial fulfilment for the award of the degree

of

BACHELOR OF TECHNOLOGY

in

INFORMATION TECHNOLOGY

OCTOBER 2019
BONAFIDE CERTIFICATE

Certified that this project report “CODIFICATION ENGINE - Online Coding


Platform” is the bonafide work of “AAHIL R (16F101), DEEPAN V(16F110) ,
SACHIN NANDHA SABARISH J (16F140) ” who carried out the project
work under my supervision. Certified further that to the best of my knowledge
the work reported here in does not form part of any other dissertation on the
basis of which degree or award was conferred on an earlier occasion on this or
any other candidate.

--------------------------- -------------------------

Faculty Guide Head of the Department

(R. Mirdula) (Dr. S. Manoj Kumar)

Certified that the candidate was examined in the viva-voce


examination held on _________

……………………….. ……………………….

(Internal Examiner) (External Examiner)


ACKNOWLEDGEMENT

We express our sincere thanks to Karpagam educational and charitable


trust for providing necessary facilities to bring out the project successfully. We
felt greatness to record our thanks to the chairman Dr.R.VASANTHAKUMAR,
B.E.,(Hons), D.Sc. for all his support and ray of strengthening hope extended.

It is the moment of immense pride for us to reveal our profound thanks to


our respected Principal, Dr.P.VIJAYAKUMAR, M.E., Ph.D. who happens to
be striving force in all our endeavours.

We express our sincere thanks to our Dr.S.MANOJ KUMAR M.E.,


Ph.D. Head of the Department of INFORMATION TECHNOLOGY for
providing an opportunity to work on this project. His valuable suggestions
helped us a lot to do this project.

A word of thanks would not be sufficient for the work of our project
guide R. MIRDULA M.E. Department of INFORMATION TECHNOLOGY
whose efforts and inspiration lead us through every trying circumstance.

We would also like to recollect the courage and enthusiasm that was
inculcated in us by our project co-ordinator , Dr.G.RAJESHKUMAR, M.E.,
Ph.D., Dr.R.MADHUMITHA, M.E., Ph.D., Department of INFORMATION
TECHNOLOGY for valuable guidance and support through the tenure of our
project.

We deeply express our gratitude to all the members of the faculty of the
Department of INFORMATION TECHNOLOGY for the encouragement,
which we received throughout the semester.
TABLE OF CONTENTS

CHAPTER NO. TITLE PAGE NO.

1 ABSTRACT 5

2 INTRODUCTION 6

3 LITERATURE SURVEY 9

4 SYSTEM SPECIFICATION 12

4.1 HARDWARE SPECIFICATION 12

4.2 SOFTWARE SPECIFICATION 12

5. SYSTEM DESIGN 25

6. CONCLUSION 33

7. REFERENCE 33
ABSTRACT

Due to the evolving demands in the field of digital e-learning, we came up with a tool
that deals with it. A Digital e-Learning Platform is an assimilated set of interactive
online services that provides the teachers, learners, parents and Human Resource
Recruitment community with information, services and resources to support
educational delivery and management.And for the betterment of this concept we
would like to integrate Learning Management System with Sentiment Analysis to
analyse the strength and weakness of a student and guide them properly using the data
without the interference of a Human. This is a complete Automation Tool .
CHAPTER I

INTRODUCTION

1.1. Introduction

This project is aimed at developing an online Digital e-Learning with sentiment analysis.
The main objective of this tool is to concede students to practice Programming Challenges
in programming languages like C, C++, Java, Python, Ruby and also students can be
evaluated and assessed using the Application.

The proposed system is a web-based application where one can create an user account and
start learning Programming Languages. And the students performance will be tracked and
analysed.

A Learning Platform is a comprehensive system enabling secure, web-based training and


e-learning solution that employs a simple and intuitive user interface.

The Learning Platform can be used in educational institutes mainly-schools, colleges and
universities. Besides, corporate organizations, banks can also use this system for training
purpose and easy employee assessment. The confidential data and official documents of the
organization can be easily managed and organized with the help of learning platform.

Lets take into consideration the benefits of Learning Platform if integrated into educational
institutes- schools, colleges, and universities

An effective learning platform that is embedded in the working practices of the educational
institutes can offer a wide range of benefits to teachers, pupils, parents and at the same time
support management and administration.

Sentiment Analysis is the process of determining whether a piece of writing is positive,


negative or neutral. A sentiment analysis system for text analysis combines natural
language processing (NLP) and machine learning techniques to assign weighted sentiment
scores to the entities, topics, themes and categories within a sentence or phrase.

Sentiment Analysis is contextual mining of text which identifies and extracts


subjective information in source material, and helping a business to understand the
social sentiment of their brand, product or service while monitoring online
conversations. However, analysis of social media streams is usually restricted to just
basic sentiment analysis and count based metrics. This is akin to just scratching the
surface and missing out on those high value insights that are waiting to be discovered.
So what should a brand do to capture that low hanging fruit?

With the recent advances in deep learning, the ability of algorithms to analyse text has
improved considerably. Creative use of advanced artificial intelligence techniques can
be an effective tool for doing in-depth research.

So , We have decided to make use of sentiment analysis along with Learning


Management System to provide a great self-analysing of every student which will help
them in improving their skills.
CHAPTER 2

LITERATURE SURVEY

REFERENCE

S.No Title Proposed Method Drawbacks

1 Learning Management Brute Force No Sentiment Analysis w


Systems: Understand and Analysis of Data used in this
Secure Your Educational
Technology
2 Learning Management User Tracking No Implementation
Systems: An Overview Analytics
3 A Picture of Online User Filtration No implementation
Education

1. Learning Management Systems: Understand and Secure Your


Educational Technology

OVERVIEW :

Learning management systems (LMSs) are significant in offering


highly collaborative, widely accessible, and manageable learning solutions. It
is feasible that learning solutions stakeholders pursue an in-depth
understanding of the LMS and the vulnerabilities surrounding
technology-enabled learning and teaching. The over 300 types of active
LMSs, proprietary or open source, are not off limits to hackers. Past research
shows that hackers compromise technology systems to ascertain personal
identifiable information and interfere with the integrities of post-secondary
institutions. Stakeholders must understand how to safeguard the LMS. To
address LMS cybercrime concerns, this text reviews vulnerability information
on over 12 LMS features. After reading this text, stakeholders will gain
increased insight into their works to thwart security related LMS incidents.
This text can support stakeholders' knowledge in actions to take prior to the
LMS reaching unacceptable vulnerability levels. Researchers and practitioners
will benefit from this text's perspective on the LMS and mitigating risk.

2. Learning Management Systems: An Overview

OVERVIEW:

The emergence of sophisticated communication technologies and mobile


devices has enabled a new generation of information consumers to satisfy
their demands for knowledge without the need to meet in a physical location.
Software vendors, open-source developers, and educational institutions,
cognizant of this development, have embraced systems that can facilitate the
management of courses and engagement with students remotely. The
technologies that facilitate the provision of courses over long distances are
broadly termed “learning management systems” or “LMSs.” Learning
management systems can be defined as web-based software platforms that
provide an interactive online learning environment and automate the
administration, organization, delivery, and reporting of educational content
and learner outcomes.

3. A Picture of Online Education

OVERVIEW:

This article presents both a historical picture of online education and a colorful
diagram of its essential concepts for brainstorming. There is a brief recounting
of developments leading to the improbable formation of the World
Association for Online Education (WAOE). Online education and related
terms were defined in a graduate school class on online education, while the
WAOE organization provided online mentors for the graduate class at a
national university near Tokyo.
CHAPTER 2 : PROJECT DESCRIPTION

2.1 PROPOSED WORK

MODULES

● Admin Model
● User Model
● Announcement Model
● Comment Model
● Contest Model
● History Model
● Language Model
● Practice Model
● Problem Model
● Rank Model
● Ranklist Model
● Run Model
● Submission Model
● Testcase Model

2.1.1 Admin Model

In this Model, all the other 16 models are controlled with operations like
create,read,update and delete. Generally this concept is called as CRUD
operation. Since we are about to use MongoDB as the backend technology, this
CRUD concept is the one that is associated with this database.

2.1.2 User Model

In this Model, we have permitted only the read operation for the modules

1. Contest
2. Problem
3. Submission
4. Practice

We are planning to use the gem “devise” to implement user authentication


system. Devise is a flexible authentication solution for Rails based on Warden. It:
● Is Rack based
● Is a complete MVC solution based on Rails engines
● Allows you to have multiple models signed in at the same time
● Is based on a modularity concept: use only what you really need.

It's composed of 10 modules:

● Database Authenticatable: hashes and stores a password in the database to


validate the authenticity of a user while signing in. The authentication can be
done both through POST requests or HTTP Basic Authentication.
● Omniauthable: adds OmniAuth (https://github.com/omniauth/omniauth)
support.
● Confirmable: sends emails with confirmation instructions and verifies whether
an account is already confirmed during sign in.
● Recoverable: resets the user password and sends reset instructions.
● Registerable: handles signing up users through a registration process, also
allowing them to edit and destroy their account.
● Rememberable: manages generating and clearing a token for remembering the
user from a saved cookie.
● Trackable: tracks sign in count, timestamps and IP address.
● Timeoutable: expires sessions that have not been active in a specified period
of time.
● Validatable: provides validations of email and password. It's optional and can
be customized, so you're able to define your own validations.
● Lockable: locks an account after a specified number of failed sign-in attempts.
Can unlock via email or after a specified time period.

2.1.3 Announcement and Comment

In this model , we are planning to use AJAX . Announcement Model is


associated to contest model where for every contest , certain announcement will
be made by the admin . Comment Model is associated with Problem model
where all the users can post their comments on every problem.

For this feature , we are planning to use the gem “commentator”.


Commontator is a Rails engine for comments. It is compatible with Rails 5.
Being an engine means it is fully functional as soon as you install and configure
the gem, providing models, views and controllers of its own. At the same time,
almost anything about it can be configured or customized to suit your needs.
2.1.4 Contest Model

Relationships:

● belongs to user
● has many problems
● has many announcements

A contest is a like a test where a user will be allowed to code online and
compete with other users within a given time.

2.1.5 History Model

This model is used to track all the codes , a user has coded for a single
problem and give back the user the clear picture of what mistakes , one has
done.For recreating this feature we are planning to use the gem
“public_activity”.

public_activity provides easy activity tracking for your ActiveRecord,


Mongoid 3 and MongoMapper models in Rails 3.0 - 5.0. Simply put: it records
what has been changed or created and gives you the ability to present those
recorded activities to users - in a similar way to how GitHub does it.

2.1.6 Language Model

This language model is associated with problem model using which we


are planning to offer certain programming languages like

1. C
2. C++
3. JAVA
4. PYTHON
5. RUBY

And if required , we can add as many languages we need.


2.1.7 Problem Model

RELATIONSHIPS

● belongs to contest
● has many testcases
● has many languages

In this model , A programming question is given, for which the


user has to code in any one of the programming languages provided . We have
used a open source text editor known as “CodeMirror”

CodeMirror is a versatile text editor implemented in JavaScript for the browser.


It is specialized for editing code, and comes with over 100 language modes and
various addons that implement more advanced editing functionality. Every
language comes with fully-featured code and syntax highlighting to help with
reading and editing complex code.

A rich programming API and a CSS theming system are available for
customizing CodeMirror to fit your application, and extending it with new
functionality.

2.1.8 Rank and Ranklist Model

In this Model , we are planning to give ranking for students/users based


on their performance. For this model , we are planning to use the machine
learning algorithm called “TF-Ranking”.

Ranking is one of the most common problems in machine learning


scenarios. From search to recommendation systems, ranking models are an
important component of many mainstream machine learning architectures. In
machine learning theory, ranking methods are often referred to using terms like
learning-to-rank(LTR) or machine learning ranking(LTR). Despite its relevance,
developing LTR models at scale remains a challenge in most machine learning
frameworks. Recently, artificial intelligence(AI) engineers from Google
introduced TF-Ranking, a TensorFlow-based framework for building highly
scalable LTR models.
Conceptually, a ranking problem is defined as a derivation of ordering over a
list of examples that maximizes the utility of the entire list. That definition
sounds similar to classification and regression problem but ranking problems
are fundamentally different. While the goal of classification or regression is to
predict a label or a value for each individual example as accurately as possible,
the goal of ranking is to optimally sort the entire example list, such that the
examples of highest relevance are presented first. To infer relevance, LTR
methods attempt to learn a scoring function that maps example feature vectors
to real-valued scores from labeled data. During inference, this scoring function
is used to sort and rank examples.

This simple architecture have become the basics of most ranking algorithms as
well as libraries such as RankLib or LightGBM. While these libraries provide
efficient ranking methods, they have been implemented for small datasets which
makes them impractical for real world scenarios that rely on large volumes of
training data. Additionally existing LTR libraries have not been designed for
sparse and multi-dimensional datasets which are common in deep learning
scenarios.

The limitations of existing LTR stacks makes the implementation of LTR


methods in deep learning scenarios incredible complex engineering exercises.
This problem is aggravated by the lack of support for ranking models in
mainstream deep learning frameworks such as TensorFlow, MxNet, PyTorch
or Caffe2.

And we have used ELO-RATING Algorithm for giving ratings for every users
based on which we are providing the ranking system.The Elo rating system is a
method for calculating the relative skill levels of players in zero-sum games
such as chess. It is named after its creator Arpad Elo, a Hungarian-American
physics professor.

The Elo system was originally invented as an improved chess rating system
over the previously used Harkness system, but is also used as a rating system for
multiplayer competition in a number of video games, association football,
American football, basketball, Major League Baseball, table tennis, Scrabble,
board games such as Diplomacy and other games.
The difference in the ratings between two players serves as a predictor of the
outcome of a match. Two players with equal ratings who play against each other
are expected to score an equal number of wins. A player whose rating is 100
points greater than their opponent's is expected to score 64%; if the difference is
200 points, then the expected score for the stronger player is 76%.
A player's Elo rating is represented by a number which may change depending
on the outcome of rated games played. After every game, the winning player
takes points from the losing one. The difference between the ratings of the
winner and loser determines the total number of points gained or lost after a
game. If the high-rated player wins, then only a few rating points will be taken
from the low-rated player. However, if the lower-rated player scores an upset
win, many rating points will be transferred. The lower-rated player will also
gain a few points from the higher rated player in the event of a draw. This
means that this rating system is self-correcting. Players whose ratings are too
low or too high should, in the long run, do better or worse correspondingly than
the rating system predicts and thus gain or lose rating points until the ratings
reflect their true playing strength.
An Elo rating is a comparative rating only, and is valid only within the rating
pool where it's established.

2.1.9 Run and Submission Model

In these models, the code which is written by the user is taken to the
server for compilation . If 1000s of codes are recieved by the server at the same
time, only one code will be compiled successfully and all the other codes will be
failed. To handle this we have introduced the gem called “sidekiq” which does
CPU scheduling in a very efficient manner.
Simple, efficient background processing for Ruby.

Sidekiq uses threads to handle many jobs at the same time in the same process.
It does not require Rails but will integrate tightly with Rails to make
background processing dead simple.
Performance

Version Latency Garbage Time to Through Ruby


created process 100k put
for 10k jobs
jobs

Sidekiq 3 ms 156 MB 14.0 sec 7100 MRI


6.0.2 jobs/sec 2.6.3

Sidekiq 3 ms 156 MB 19 sec 5200 MRI


6.0.0 jobs/sec 2.6.3

Sidekiq 10 ms 151 MB 22 sec 4500


4.0.0 jobs/sec

Sidekiq 22 ms 1257 MB 125 sec 800


3.5.1 jobs/sec

Resque - - 420 sec 240


1.25.2 jobs/sec

DelayedJo - - 465 sec 215


b 4.1.1 jobs/sec
2.1.10 Testcase

In this model, we are planning to set as many test cases to a single


programming problem. A user has to crack as many testcases as he/she can in
order to secure higher mark. We are planning to use the gem “carrierwave” for
uploading .txt files in the server. This gem provides a simple and extremely
flexible way to upload files from Ruby applications. It works well with Rack
based web applications, such as Ruby on Rails.
CHAPTER 3

SYSTEM SPECIFICATION

3.1 HARDWARE SPECIFICATION

● Intel i5 processor or higher.


● Minimum of 8 GB RAM.
● 256 GB hard disk.

3.2 SOFTWARE SPECIFICATION

● Python, Java, Ruby, GCC compiler for C/C++


● NodeJS
● Ruby on Rails
● MongoDB database
● Packages : numpy, sklearn, scipy, pandas
● RubyMine
● Operating System : Ubuntu 16.04 or higher
CHAPTER 4

SYSTEM DESIGN

Model Relationship

USER

has_and_belongs_to_many :contests

has_many :runs

has_many :ranks

belongs_to :setter, optional: true

has_many :submissions

ANNOUNCEMENT

belongs_to :contest, inverse_of: :announcements

COMMENT

belongs to: user

belongs to: problem

CONTEST

has_many:problems

belongs to:setter

has_many:announcements

PROBLEM

has_many:submissions

has_many: testcases

has_many: languages

belongs_to: contest
LANGUAGE

belongs_to: problem

RUN

belongs_to: problem

SUBMISSION

belongs_to: problem

TESTCASE

belongs_to: problem
4.1 Basic flow:
CHAPTER 5

CONCLUSION

We illustrated how to build a digital e-learning tool with sentiment analysis.We hope that
this tool will serve the mankind in the field of education and will maintain it’s standard.
The proposed system is a web-based application where one can create an user account and
start learning Programming Languages. And the students performance will be tracked and
analysed.

REFERENCE

Movie Recommendation System Using Collaborative Filtering

Publisher: IEEE

Author(s) : Ching-Seh Mike Wu , Deepti Garg , Unnathi Bhandary.

https://sites.google.com/site/chatrasadagopansharma/conclusion

https://towardsdatascience.com/various-implementations-of-collaborative-filtering-10
0385c6dfe0

https://www.youtube.com/watch?v=XoTwndOgXBM

https://arxiv.org/ftp/arxiv/papers/1612/1612.01556.pdf

https://onlinelibrary.wiley.com/doi/abs/10.1002/asi.21206

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4765697/

https://www.tandfonline.com/doi/abs/10.1080/10494820.2012.745433

https://www.researchgate.net/profile/Nor_Adzharuddin/publication/269838611_Learni
ng_Management_System_LMS_among_University_Students_Does_It_Work/links/5a
d20396458515c60f50a322/Learning-Management-System-LMS-among-University-St
udents-Does-It-Work.pdf

https://www.researchgate.net/publication/257948587_A_survey_paper_on_e-learning
_based_learning_management_Systems_LMS

You might also like