You are on page 1of 7

Plagiarism Checker X Originality Report

Similarity Found: 6%

Date: Sunday, October 03, 2021


Statistics: 162 words Plagiarized / 2628 Total words
Remarks: Low Plagiarism Detected - Your Document needs Optional Improvement.
-------------------------------------------------------------------------------------------

FEASIBILITY STUDY The Group: Abdul Mueez, 2019ce2@student.uet.edu.pk Tajammul


Naeem, 2019ce11@student.uet.edu.pk Muhammad Hammad Faisal,
2019ce13@student.uet.edu.pk Muhammad Nabeel Raza, 2019ce14@student.uet.edu.pk
Hussnain Ali, 2019ce20@student.uet.edu.pk Ali Hassan, 2019ce32@student.uet.edu.pk
Abdul Qadir, 2019r2018ce249@student.uet.edu.pk The Client: Dr. Ali Hammad,
Chairperson CE department, ahakbar@gmail.com Proposal Statement: The project is to
develop a web-based application that will give a platform for teachers to auto-
grstudent’s gnmfor es ght the CE department.

Like, Programming Fundamentals (PF), Data Structures and Algorithms (DSA), Artificial
Intelligence (AI), etc. The main goal is to automate the grading of all the students who
have submitted their assignments. Our assignments for these courses are to implement
different functions, for example, factorials and other such functions. The teachers will be
given an interface where they can add test cases to check whether the functions have
been implemented properly. The program will mark every student and generate a .csv
file of marks and log files of every student giving the reason for the failure of any test
case if any. The main concerns here are to give marks to every student after complete
testing.

Consider it like unit testing but we are going to create such an environment where
teachers will give us the name of the function, docstring (optional), test cases with
expected values, and marks of that specific function. Benefits: Programming assignment
grading is a time-consuming task and can be error-prone if done manually. So, the
availability of Auto-Grading software provides many benefits. ? The first and most
effective benefit of this app is that it saves a lot of time. Teachers spend hours in a week
grading assignments. ? An important thing is that grades have to be justified.
Sometimes students doubt their grades.

This time they will not doubt the app and no such problem will occur as all the students
will be given grades according to their passed test cases. Preliminary Requirements
Analysis: Objectives The cardinal purpose of the application will be to automate the
validation of various programming functions and methods submitted by students in
their assignments of CS courses (PF, DSA, and AI). The teachers will create the
assignment and then they can evaluate the assignments of all students in one go. Excel
sheet will be generated instantly to maintain a record of marks of each student enrolled
in the course.

Business Objectives The project endeavors to optimize the valuable time of the teachers
and teaching assistants, and to maintain records effectively. The current methods of
assignment creating and checking will be replaced by an automatic validation facet of
the systematized web application with a feasible and user-friendly interface. This
automated validation hopes to reduce the workload of teachers as they will not have to
manually type the credentials and marks obtained by students. Excel sheets will be
generated and printed spontaneously by clicking the respective button.

A working prototype will be developed, tested, and implemented in time to be deployed


in this academic semester (Fall 2021). Current Business Process and Rules Presently, the
client or teacher has to open different IDEs and terminals, configure them, set
environment variables, add different print statements consisting of test cases for various
functions and then has to run code that is sluggish. After that, the teacher has to create
some file, manually enter the details and marks of students one by one, and finally save
the file.

Due to this time-consuming procedure, marks are reported and communicated to


students with some delay in an unpunctual manner. The new system hankers to solve
this problem by eliminating the need for manual entries, replacing the old system with
an automatic system, and saving time by reducing the workload. Teachers mostly check
for plagiarism in the assignments. So, using this application will benefit them in the
sense that they will have to check plagiarism of the only that sections or functions of
assignments in which the students have passed.

User Roles and Responsibilities Administrator Role: The administrator will be a teacher
or professor currently teaching the particular course having the ability to enter, validate
assignments and maintain a record of marks. Moreover, the administrator will have
access to the admin section where he will be able to view which teaching or graduate
assistant signed at a particular time and altered the records and other account
information about assistants. Other Us s Role: The other users will primarily consist of
teaching or graduate assistants who will play the same role as administrators i.e. check
assignments and print excel sheets etc. except having access to the admin section.

Interactions with Other Systems The application will be built de novo using standardized
web packages, replacing the existing system. Excel sheets generated through this
application may be combined with excel sheets being generated by a closely related
system at a future date. Non-functional requirements Non-functional requirements are
unspecified at this point. Foreseeable non-functional requirements may include up-time,
reliability, number of concurrent users supported, response- time of the system, etc.
Technical Requirements – Feasibility: 1. Backend – Flask will be used for the backend.

Flask is a micro web framework written in Python with a small core and easy-to-extend
philosophy. Different sub-modules of Flask will be utilized like flask-SQLalchemy,
flask-admin, flask-session, etc. ? Flask-Admin solves the boring problem of building an
admin interface on top of an istdata Wh tleffort, yomanayouweb rvice’s data through a
user-friendly interface. ? Flask-SQLalchemy is an extension for Flask that adds support
for SQLalchemy to your application. It aims to simplify using SQLalchemy with Flask by
providing useful defaults and extra helpers that make it easier to accomplish common
tasks.

? Flask-Session is an extension for Flask that adds support for Server-side sessions to
your application. ? Jinja2 will be used as a template engine. A template engine enables
you to use static template files in your application. It is a fast and extensive web
template engine for the Python programming language. ? Optional — some more
extensions of Flask may be used depending on the way things will go i.e.
flask-marshmallow, flask-security, etc. 2. Database – Flask-SQLalchemy will be used
while developing the application as it creates a database in a directory on your device
and is easy to view.

For deployment, minor modifications will be made in syntax to make it compatible with
PostgreSQL as it is the only free database that Heroku provides. 3. Frontend –
User-friendly and responsive interface will be designed. Dynamic fields will be generated
as per requirements. Different buttons will be added. React and Vanilla CSS will be very
handy for this purpose. ? React is an open-source front-end JavaScript library for
building user interfaces or UI components. It can be used to make the application more
dynamic. ? Bootstrap will also be used to save time. ? CSS will be used where bootstrap
is not much flexible. ? Optional — Sass or some other libraries for icons like
FontAwesome library can also be used. 4.
Deployment – Once completed, this web application will be deployed on Heroku.
Heroku is one of the first cloud platforms as a service supporting several programming
languages. It enables developers to build, run and operate applications entirely in the
cloud with great ease. Git Bash and Heroku CLI will be used while deploying. ? Git Bash
is the terminal that provides an environment to give git command line experience. ?
Heroku CLI is also a terminal to get domain names from Heroku and deploy them.

Scope: The scope of this project ranges from AI assignments, DSA assignments to
Programming Fundamentals Assignments, and the answer to the questions of these
assignments will be written in Python language. As these courses have been recently
renewed, we are not expecting them to change in the near future. So this project can be
useful in the long run. We will NOT implement this automation for languages other than
Python. We will NOT change the assignments submitted by the students. The end
product will run on a web server. As this is a web application, the end product will be
accessible to any person online.

But only registered teachers can create and/or check assignments while teaching
assistants will only check assignments that have already been created by the teacher.
Suggested Deliverables: Management Deliverables: 1. Requirement Analysis ~ In this
deliverable, we review both the functional and non- functional requirements of the
project so we can make sure we are developing something that closely mirrors the
client's expectations. Clients are given a chance to modify and correct any items that are
missed or miscommunicated before we proceed further into the design. 2. Design
Document ~ a document and presentation covering the system design and how the
project will be implemented.

This is an opportunity for the group to go over the details of how the project will be
implemented. Based on the understanding of the requirements established in the
Requirements Analysis, this deliverable is completed by the more technical and
experienced members of the Group. 3. Source Code ~ a document, presentation, and
source code of the final project. The final deliverable concludes the project. This
deliverable is based on the requirements defined and the designs developed in previous
stages.

After unit testing and the final acceptance test, the system would be ready for
deployment to production. Technical Deliverables: 1. A Teacher's interface to create the
assignments or get the marks of the students. A webpage designed to allow the teacher
to give the information about the assignments i.e. the functions to be created, their
requirements and test data, etc., or get the marks of the students. 2. A database with the
required tables to support the Assignment and Teacher's information. The database
needs to be set up with the website to store information. 3.

A python framework that runs the functions of the students and returns the marks of
the student. Walk-Through: This walkthrough illustrates how the Group understands the
product requested by the Client so that they are on the same page. It should serve as a
rough overview of the functionality required by the final product as the project team
currently perceives it, and not necessarily as an exact model of how the final product will
interact. Creating Assignment walk-through In order to create an assignment, the
Teacher will be presented with a form that will take required and optional information
about the assignment which includes the name of the function, the name (optional) and
the number of arguments, the docstring, or comments of the function to help the
student and the test cases of the function after submitting and filling the form. The
teacher can then get the template of the function in the form of a .py file.

Grading Assignment walk-through To grade the assignment, the Teacher will provide
the assignments of all the students in a compressed zip file. And our system will mark
the students depending on if the output of the function written by the student matches
the test case given by the teacher and it will give the appropriate marks of all the
students in a .csv file. Software Development Process: This project will employ Agile
Methodology as we are expecting the requirements to evolve and we have a time
constraint. Every two weeks, the Client will be updated on how the project is
progressing.

This will benefit our group as follows: 1. Process visibility — participation of the Client in
the process will enable us to achieve the desired results. 2. Lightweight process —
following this process will give us the opportunity to show a released version of the
project with every sprint. As it is a lightweight process, minimal documentation will be
created but the final version will need full documentation for future maintenance. 3.

Disciplined work — different teams from the group will work on different tasks so the
burden is divided equally. 4. QA/QC — with each iteration, we will check the quality of
the release. This will allow us to make amendments before we move on. Outline Plan
(milestones): 1. First Sprint (week 1-2) — Interface. We will need to design an interactive
and dynamic interface to work with. Moreover, we will implement the log-in and
registration functionality in this part. 2. Second Sprint (week 3-4) — Half
Implementation. We will design and integrate the database into our application. At this
point, the teacher should be able to generate assignments for the students. 3. Third
Sprint (week 5-6) — Remaining Half.

Proper checking of assignments based on every test case described in the assignment
should take place. Furthermore, every featur be tested as whole to ensure the puct’s
reliit Visibility Plan: External – The Group will conduct a regular online meeting with the
client on Zoom every week. If situations arise or a problem remains to be addressed in
the meeting, The Group will be in touch through WhatsApp or Email.

A report will be submitted at end of every step to ensure that both parties are in sync
and to minimize any miscommunication in requirements. Internal – The Group will meet
weekly on Sunday from 8:30 pm to 10:00 pm to discuss progress and problems on
Google Meet. Meeting minutes will be kept track and sent to all members of the Group
for reference. Any additional communication can be on WhatsApp or other
collaboration tools such as document sharing. In addition, we will keep source code on
Github by making a repository. All code will be documented carefully before being
submitted to Github.

The progress of major milestones/sprints will be closely monitored and compared with
the schedule. Business Considerations: As we are not including any kind of sensitive
information in our project. Which can be easily accessed by any unfamiliar person
resulting in the alteration or affecting of files. But for security reasons, we will make a
login system with slight encryption so that no one will be able to misuse or harm any
useful information. Moreover, we will make a cyber-security system for our project so
that any suspicious login or access will be caught.

Our team believes that if this project gets approval to be used officially and gets
popularity from our staff members and faculty then we will make a license and
agreement of it. And we will officially introduce it to the market with copyright. Risk
Analysis: 1. Time Risks Risk: The requirement of this course specifies that the project
must be completed within one academic semester. There is a risk that the system may
not be completed with full functionality within the given time frame of the semester.
Solution: The client needs to allow us some more time and wait until the system is fully
functional. 2.

Non-functional requirements Risk: Number of users that the system expects to support
concurrently, and the response time of database lookup. Solution: In the next meeting, it
is required to specify this non-functional requirement. 3. Unclear Requirements Risk: The
requirements are unclear if they are not understandable by analysts and developers.
Solution: After every meeting, the requirements will be written and verified by the client.
4. Human Resources Risk: The Group consists of 7 members. Some members and not
like pros in coding. Almost all members have limited knowledge of relevant web
technologies.
Solution: For these reasons the Group acknowledges that a slow pace in the
implementation and designing phase may be inevitable, and is planning accordingly.
Conclusion On the basis of this feasibility report, the project is feasible for us and we are
ready to take this project. All the group members will be working side by side to make
this project working. It will take a lot of effort. The time for this project is about six
weeks and we will be working on it phase-wise. After this time we will provide a working
project for our respective teachers INSHAALLAH.

INTERNET SOURCES:
-------------------------------------------------------------------------------------------
<1% - www.programiz.com › dsa
1% - www.coursehero.com › file › 12177197
<1% - www.fullstackpython.com › flask
1% - flask-admin.readthedocs.io
1% - pypi.org › project › Flask-SQLAlchemy
<1% - github.com › fengsp › flask-session
<1% - sites.tufts.edu › cslol › files
<1% - mentormate.com › blog › what-is-heroku-used-for
<1% - www.heroku.com
<1% - devcenter.heroku.com › articles › heroku-cli
<1% - jelvix.com › blog › functional-vs-nonfunctional
1% - www2.southeastern.edu › Academics › Faculty
<1% - www.cs.cornell.edu › courses › cs5150
<1% - courses.lumenlearning.com › santaana-information

You might also like