Download as pdf or txt
Download as pdf or txt
You are on page 1of 41

`

Final Year Internship Project Report


On
Project Auto
At
Asterdio Inc.
(C. Sc. - 452)

For the partial fulfillment of the requirement for the degree of Bachelor of Science in
Computer Science and Information Technology awarded by IOST, Tribhuvan University

Submitted By:
Manil Singha Malla
(T.U. Exam Roll No. 7536/072)

Monday, September 14, 2020


PROJECT AUTO

(C. Sc. - 452 Internship)

An internship report submitted in partial fulfillment of the requirement for the degree of
Bachelor of Computer Science and Information Technology.

Submitted by

Manil Singha Malla


(T.U. Exam Roll No. 7536/072)

Submitted to
Department of Computer Science and Information Technology
Sagarmatha College of Science and Technology
Sanepa, Lalitpur, Nepal

Monday, September 14, 2020

I
Sagarmatha College of Science and Technology

Sanepa, Lalitpur

(T.U. Affiliate)

STUDENT’S DECLARATION

I, Manil Singha Malla a student of Sagarmatha College of Science and


Technology, Sanepa, Lalitpur, hereby declare that this internship report entitled, “Project
Auto” submitted to Tribhuwan University is a record of an original research work done
by me under the mentor-ship of Mr. Biplav Sharma.

The matter embodied in this report has not been submitted by any other
University or Institution for the award of the degree. This project report is my original
work and it has not been presented earlier in this time. This information is purely of
academic interest.

……………………………………………

Manil Singha Malla

B. Sc. C. S. I. T.

(T.U. Exam Roll No. 7536/072)

Date: ……………………………………

II
MENTOR’S RECOMMENDATION

I hereby recommend that the final year internship report entitled “Project Auto”
carried out at “Asterdio Inc.” by Manil Singha Malla can be processed for the
evaluation of fulfilling the partial requirement for the degree of Bachelor of Science in
Computer Science and Technology. In my best knowledge, this report is the record of the
authentic work independently carried out by him during the internship period under my
surveillance and mentor-ship.

……………………….

Mr. Biplav Sharma

Team lead

Asterdio Inc.

III
Sagarmatha College of Science and Technology

Sanepa, Lalitpur

(T.U. Affiliate)

LETTER OF APPROVAL
The internship report project entitled, “Project Auto” prepared and submitted by
Mr. Manil Singha Malla has been examined by us and is accepted for the award of the
degree of Bachelor of Science (B.Sc.) in Computer Science and Information Technology
awarded by Tribhuvan University.

Date: ………………………

EVALUATION COMMITTEE

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

Er. Ganga Subba Er. Ganga Subba


H.O.D, Sagarmatha College of H.O.D, Sagarmatha College of
Science and Technology Science and Technology
(Supervisor) (H.O.D)

…………………………………. ………………………………….
Mr. Biplav Sharma Mr/s. External Examiner
Team Lead, Asterdio Inc. CDCSIT, T.U., Kirtipur
(Mentor) (External Examiner)

IV
ACKNOWLEDGEMENT

In accordance with the syllabus of “C. Sc. 452 Internship” as prescribed by


Tribhuvan University for the partial fulfillment of the requirements of the degree of
Bachelor of Science in Computer Science and Information Technology, I have prepared
this project entitled “Project Auto”.

I express my sincere gratitude to Mr. Biplav Sharma for mentoring me during


this internship.

I wish to convey my deepest gratitude to Asterdio Inc. for providing all the
necessary help and support as well as infrastructure and facilities that they have been
providing during my internship period. I am very thankful for their cooperation, without
which it would be hard to make this project possible.

Finally I would like to express my deepest gratitude to Er. Ganga Subba for the
enormous amounts of support and supervision that she provided during and after the
completion of this project.

Manil Singha Malla

(T.U. Exam Roll No. 7536/072)

Date: ……………………………………

V
ABSTRACT

Project Auto is an electronic trading platform for sellers and buyers of


automobiles in Nepal. It is an online automobile trading service targeted for Nepalese
consumers. This system is intended to be a web application which will allow users to
login to their accounts and browse automobiles for purchase, as well as post
advertisements for automobiles they wish to share.

The systems will also possess the ability to filter through the automobiles for sale
and compare them against each other. Authentication and session features are provided
using J.W.T. (J.S.O.N Web Tokens) Web tokens. The search and compare features are
provided by the use of queries. The system will also employ various RE.S.T. A.P.I.’s
(Representational State Transfer Application Processing Interfaces) which enable other
applications to communicate with Project Auto’s system.

Keywords –

Automobiles Trading, CRUD Operations, RE.S.T. A.P.I., J.W.T. Authentication

VI
List of Figures
Figure 3-1 Use Case Diagram...........................................................................................12

Figure 3-2 : Entity Relational Model of the System......................................................... 16

Figure 4-1 : Model Controller View Interactions............................................................. 18

Figure 4-2 : Database Model.............................................................................................19

Figure 5-1 : Agile SCRUM Methodology........................................................................ 21

VII
List of Tables

Table 1-1 : Contact Information......................................................................................... 5

Table 1-2 : Internship Duration Details.............................................................................. 6

Table 6-1 : Login test cases.............................................................................................. 27

Table 6-2 : JWT Authentication test case......................................................................... 27

Table 6-3 : Verification mail test case.............................................................................. 28

i
LIST OF ABBREVIATIONS

REST Representational State Transfer

API Application Programming Interface

JWT J.S.O.N Web Tokens

CRUD Create Read Update Delete

QA Quality Assurance

JS JavaScript

TS TypeScript

UI User Interface

UX User Experience

UPS Universal Windows Platform

ii
Table of Contents

STUDENT’S DECLARATION..........................................................................................II

MENTOR’S RECOMMENDATION................................................................................III

LETTER OF APPROVAL................................................................................................ IV

ACKNOWLEDGEMENT.................................................................................................. V

LIST OF ABBREVIATIONS..............................................................................................ii

1. INTRODUCTION........................................................................................................... 4

1.1. Introduction to the Project........................................................................................ 4

1.1.1. Scope of Project................................................................................................. 4

1.2. Introduction to the organization................................................................................5

1.2.1. Brief introduction of organization..................................................................... 5

1.2.2. Duration of Internship........................................................................................5

1.2.3. Problem Statement............................................................................................. 6

1.3. Objectives................................................................................................................. 7

1.4. Assigned Roles and Responsibilities........................................................................ 7

1.4.1. Assigned Roles...................................................................................................7

1.4.2. Responsibilities.................................................................................................. 7

1.5. Report Organization..................................................................................................8

2. LITERATURE REVIEW................................................................................................ 9

2.1. Hamrobazar.com.......................................................................................................9

2.2. Cardekho.com........................................................................................................... 9

1
2.3. Carwale.com............................................................................................................. 9

3. SYSTEM ANALYSIS................................................................................................... 10

3.1. Requirement Collection.......................................................................................... 10

3.2. System Requirement Specification......................................................................... 10

3.2.1. Functional Requirements................................................................................. 10

3.2.2. Non-Functional Requirements......................................................................... 13

3.3. Feasibility Study..................................................................................................... 13

3.3.1. Technical Feasibility........................................................................................14

3.3.2. Economic feasibility........................................................................................ 14

3.3.3. Operational Feasibility.....................................................................................14

3.3.4. Legal Feasibility...............................................................................................15

3.3.5. Schedule Feasibility......................................................................................... 15

3.4. Data Model of the System.......................................................................................16

4. SYSTEM DESIGN........................................................................................................ 17

4.1. Architectural Design............................................................................................... 17

4.1.1. Model............................................................................................................... 18

4.1.2. View.................................................................................................................18

4.1.3. Controller......................................................................................................... 18

4.2. Database Design......................................................................................................18

5. IMPLEMENTATION....................................................................................................20

5.1. Methodology........................................................................................................... 20

5.2. Tools and Technologies used..................................................................................21

5.2.1. Tools................................................................................................................ 21

2
5.2.2. Technologies.................................................................................................... 22

6. TESTING.......................................................................................................................26

6.1. Unit Testing............................................................................................................ 26

6.2. Other testings.......................................................................................................... 28

7. CONCLUSION..............................................................................................................29

REFRENCES.....................................................................................................................30

3
1. INTRODUCTION

1.1. Introduction to the Project

In this era of electronic commerce, consumers have the luxury of staying in their
beds and browsing the internet for products that they want to purchase. Everything from
groceries to expensive electronics are being traded online all over the world. The Internet
has truly become the largest market in the world. Even in Nepal there has been a boom of
electronic platforms that facilitate trade. Especially with the massive growth of smart
phone technology all and sundry have begun to use to the electronic trading platforms.

Project Auto is one such platforms where buyers and sellers of automobiles can
come together for ease of trading. This system will allow users to access their accounts
once they have been authenticated. The U.I. is designed to be aesthetically pleasing and
user friendly and was designed taking the U.X. as the primary goal. Various existing
systems were referenced for the U.I. design so that it is easy to navigate, easy on the eyes
and most importantly user friendly. The users will be able to browse through various
automobiles that have been put up for sale as well as post advertisements for the
automobiles they wish to sell. The users will also be able to filter the automobiles for sale
to find the automobile that suits their needs. The system will also contain various RE.S.T.
A.P.I.’s which can be used by other applications to communicate with Project Auto’s
system.

1.1.1. Scope of Project

Every system developed has a scope where it is applicable or useful. Project Auto
has the following scope

 Purchasing an automobile.
 Selling an automobile.
 Researching the automobile market.
4
1.2. Introduction to the organization
1.2.1. Brief introduction of organization

Established in 2016 Asterdio Inc. is a corporate office which offers creative and cost-
effective solutions for web design and development, web-based applications, mobile
applications. It also provides branding, communication and social media services. Based
at Leknath Marg, Sankhamool, Kathmandu Asterdio Inc. has channel partners all over the
world in countries like Malaysia, U.S.A., U.K. and Japan providing quality services to
clients globally.

Organization Name Asterdio Inc.

Organization Type Corporate Office

Address Leknath Marg , Kathmandu

Contact Number 01-4784137

Website https://asterdio.com/

Table 1-1 : Contact Information

1.2.2. Duration of Internship

The internship at Asterdio Inc. lasts about 12 weeks and the interns are required to
work at least 6 hours each for 5 days a week (Saturday and Sunday being holidays).

Start Date 23rd December, 2019

5
End Date 9th March, 2020

Mentor Biplav Sharma

Position Intern

Total Duration 12 weeks

Working hours 6 hours (At Least)

Working days 5 days a week

Table 1-2 : Internship Duration Details

1.2.3. Problem Statement

Currently no proper online auto mobile trading platform exists in Nepal. The
closest we have to a platform where auto mobile trading takes place is HamroBazaar.com
which is not an auto mobile trading platform but simply an advertisement platform. Thus
Hamro Bazaar does not provide services that are generally offered by an online
automobile trading platform. Additionally Hamro bazaar is a common advertisement
platform for various items instead of just automobiles and hence can not cater to the
needs specifically relating to automobiles. Thus the people of Nepal still have to toil
manually for their auto mobile needs. This makes the task of comparing various
automobiles and their prices as well as conditions an incredibly difficult and tedious
chore. These are the problems that this system aims to solve

6
1.3. Objectives

The main objectives of this project are as follows:


 To help users trade auto mobiles with ease.
 To help users compare the properties of various automobiles so that they can
make an informed decision.

1.4. Assigned Roles and Responsibilities


1.4.1. Assigned Roles

I was assigned the role of Back end Developer.

1.4.2. Responsibilities

The responsibilities assigned to me in the internship are as follows.


 Development of Models for Users and Automobiles.

 Designing the database.

 Development of REST A.P.I.'s for C.R.U.D. operations on the database.

 Login Authentication using JSON Web Tokens.

 Development of Google Login API.

 Development of Facebook Login API.

 Development of email verification API using node mailer.

7
1.5. Report Organization

Chapter 1 - Introduction

Chapter 2 - Literature Review

Chapter 3 - System Analysis

Chapter 4 - System Design

Chapter 5 - Implementation

Chapter 6 - Testing

Chapter 7 - Conclusion

8
2. LITERATURE REVIEW

We reviewed the following previously existing systems to aid the proper


development of our system.

2.1. Hamrobazar.com

Hamrobazar.com is a Nepalese advertisement platform where users can


advertise items that they wish to sell. Interested parties can then contact the users
using the information provided by the platform to advance the trade further.

2.2. Cardekho.com

Cardekho.com is an Indian site where users can sell and purchase cars. It
is India's leading car search venture that helps users buy cars that are right for
them. Its website and app carry rich automotive content such as expert reviews,
detailed specs and prices, comparisons as well as videos and pictures of all car
brands and models available in India. The company has tie-ups with many auto
manufacturers, more than 4000 car dealers and numerous financial institutions to
facilitate the purchase of vehicles.

2.3. Carwale.com

Carwale.com is an Indian automobile trading site launched in October


2005, CarWale is India’s largest auto media vehicle website and app to serve car
buyers and owners in the most comprehensive and convenient way possible by
providing a platform where car buyers and owners can research, buy, sell and
come together to discuss and talk about their cars.

9
3. SYSTEM ANALYSIS

3.1. Requirement Collection

Interns were not involved in this process. The process of requirement collection
was performed by the organization during the initial stages of the project.

3.2. System Requirement Specification

A System Requirement Specification (SRS) is a document or set of


documentation that describes the features and behavior of a system or software
application. It includes a variety of elements that attempts to define the intended
functionality required by the customer to satisfy their different users. In addition to
specifying how the system should behave, the specification also defines at a high-level
the main business processes that will be supported, what simplifying assumptions have
been made and what key performance parameters will need to be met by the system.

The requirements are distinguished into functional and non-function requirements


to make the development process efficient and organized so as to meet the predefined
objectives of the project.

3.2.1. Functional Requirements

Functional requirements are product features or functions that developers must


implement to enable users to accomplish their tasks. A functional requirement document
defines the functionality of a system or one of its subsystems. It also depends upon the
type of software, expected users and the type of system where the software is used.

10
 Display Automobiles
The system must be able display the automobiles to be browsed by the
user.

 Filter Automobiles
The system must be able to filter and search for automobiles using various
attributes.

 Register Users
The system must be able to register users and store their information for
future use.

 Login Users
The system must be able to login users using their registered information.

 Post Advertisements
The system must be able to create and display advertisements for
automobile that are to be sold.

 Compare Automobiles
The system must be able to compare two different automobiles based on
their attributes.

11
Figure 3-1 Use Case Diagram

12
3.2.2. Non-Functional Requirements

Non-functional requirements are any requirements that while not vital to the
functioning of the system provide a certain level of quality.

 User friendly
The system shall be user friendly. User experience shall be prioritized
during the development of the system. The system shall be easy to use
even for novices.

 Social Login
The system shall provide social login using accounts from Google and
Facebook.

 Secure
The system shall take measures to become secure. Important information
inside the database shall be encrypted. JWT shall be used for user sessions.

3.3. Feasibility Study

A feasibility study is an assessment of the practicality of a proposed project or


system. A feasibility study aims to objectively and rationally uncover the strengths and
weaknesses of an existing business or proposed venture, opportunities and threats present
in the natural environment, the resources required to carry through, and ultimately the
prospects for success.

To determine if the project was feasible three important tests of feasibility were
performed.

13
3.3.1. Technical Feasibility

The project is being developed using Node JS, Typescript, React, React Native,
PostgreSQL, Figma all of which are open source technologies. Additionally, the
organization has experts who are experienced in the usage of above-mentioned
technologies.

After considering the requirements of the project, the techniques, technologies


and resources that will be used and the human and economic factors the project was
deemed Technically feasible.

3.3.2. Economic feasibility

The project is being developed open source tools and technologies, thus ensuring
their free usage.

After evaluating the project, it was determined that the project has higher benefits
than its cost and may prove to be quite profitable thus this project was deemed
Economically feasible.

3.3.3. Operational Feasibility

The system is being created to solve the problem of a lack of an online


automobile trading portal. It solves the above stated problem satisfies the requirements
identified in the requirements analysis phase of system development and takes advantage

14
of the opportunities that were identified during scope definition. Thus, it was deemed
Operationally feasible.

3.3.4. Legal Feasibility

The proposed system does not conflict with the legal requirements that are present
during the planning phase of the system. Thus, the system was deemed Legally feasible.

3.3.5. Schedule Feasibility

The system is being developed in Agile Scrum methodology and is expected to be


completed in the determined time frame. Thus, the system was deemed Schedulable
feasible.

15
3.4. Data Model of the System

Figure 3-2 : Entity Relational Model of the System

16
4. SYSTEM DESIGN
Systems design is the process of defining the architecture, modules, interfaces,
and data for a system to satisfy specified requirements. Systems design could be seen as
the application of systems theory to product development. There is some overlap with the
disciplines of systems analysis, systems architecture and systems engineering.

4.1. Architectural Design

Architecture refers to the fundamental structures of a software system and the


discipline of creating such structures and systems. Each structure comprises software
elements, relations among them, and properties of both elements and relations.
The architecture of a software system is a metaphor, analogous to the architecture of a
building. It functions as a blueprint for the system and the developing project, laying out
the tasks necessary to be executed by the design teams.

This system was developed using MVC (Model View Controller) pattern. MVC is
a pattern in software design commonly used to implement user interfaces, data, and
controlling logic. It emphasizes a separation between the software’s business logic and
display. This "separation of concerns" provides for a better division of labor and
improved maintenance.

17
Figure 4-1 : Model Controller View Interactions

The MVC pattern consists of 3 parts. They are as follows: -

4.1.1. Model

The model defines what data the app should contain.

4.1.2. View

The view how the systems data should be displayed.

4.1.3. Controller

The controller contains logic that updates the model and/or view in response to
input from the users of the system.

4.2. Database Design

The database used in this project is PostgreSQL. It is a powerful, open source


object-relational database system with over 30 years of active development that has
earned it a strong reputation for reliability, feature robustness, and performance.

18
Figure 4-2 : Database Model

19
5. IMPLEMENTATION

5.1. Methodology

Agile scrum is a framework based around continuous improvement. It is based on


the continuous learning and adjustment to the ever changing needs of a project. It is a
framework that helps teams to adapt to the ever changing conditions and user
requirements. It acknowledges the fact that the developers do not know every thing when
they begin the project and the project morphs and evolves over time. Agile scrum also
focuses largely on teamwork and learning through experience. In fact the name Scrum
comes from a rugby team training for a big game.

Scrum is structured with short and iterative release cycles to help the growth of the
developers. Each iteration consists of two- to four-week sprints, where each sprint's goal
is to build the most important features first and come out with a potentially deliverable
product. More features are built into the product in subsequent sprints and are adjusted
based on stakeholder and customer feedback between sprints.Whereas other project
management methods emphasize building an entire product in one iteration from start to
finish, agile scrum methodology focuses on delivering several iterations of a product to
provide stakeholders with the highest business value in the least amount of time.

20
Figure 5-1 : Agile SCRUM Methodology

5.2. Tools and Technologies used

5.2.1. Tools

 Visual Studio Code


Visual Studio Code is a source-code editor developed by Microsoft
for Windows, Linux and Mac OS. It includes support for debugging,
embedded Git control and Git Hub, syntax highlighting, intelligent code
completion, snippets, and code re factoring.

 Postman
21
Postman is a REST API testing environment. It enables us to easily
test various REST API requests and see the output returned

5.2.2. Technologies

 Figma
Figma is a browser-based UI and UX design application, with
excellent design, prototyping, and code-generation tools. It’s currently one
of the leading interface design tools of the industry, with robust features
which support teams working on every phase of the design process.

22
 React
React is a JavaScript library for building user interfaces. It is
maintained by Facebook and a community of individual developers and
companies. React can be used as a base in the development of single-page
or mobile applications.

 React Native
React Native React Native is an open-source mobile application
framework created by Facebook. It is used to develop applications for
Android, i OS, Web and U.W.P. by enabling developers to use React
along with native platform capabilities.

 Node JS

23
Node JS is sever-side platform built on Google Chrome's
JavaScript Engine. Node JS is used for the Back-end of the project. The
complete Content management system is developed using it. It
communicates with Fronted with the help of API.

 Typescript
Typescript is an open-source programming language developed
and maintained by Microsoft. It is a strict syntactical super set of
JavaScript, and adds optional static typing to the language. Typescript is
designed for development of large applications and trans compiles to
JavaScript.

 PostgreSQL
PostgreSQL, also known as Postgres, is a free and open-source
relational database management system emphasizing extensible and

24
technical standards compliance. It is designed to handle a range of
workloads, from single machines to data warehouses or Web services with
many concurrent users.

 Sequelize
Sequelize is an 3rd party Object Relational Mapper which lets us
create a system which provides the benefits of both an Object and
Relational Database.

25
6. TESTING

6.1. Unit Testing

Unit testing is a level of software testing is a software testing method by which


individual units of source code, sets of one or more computer program modules together
with associated control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. The purpose is to validate that each unit of the
software performs as desired. A unit is the smallest testable part of any software. It
usually has one or a few inputs and usually a single output.

Each individual API was tested by the quality assurance team of the organization
and deemed fit for use.

Some test cases used in unit testing are as follows.

Test Description Actions/Input Expected Obtained Result


# Result

1.1 Login into the system Email: Show Home Get Home page
with correct parameters manilsmalla@gmail page
.com

Password:
********

1.2 Login into the system Email: Show Error Get Error
with incorrect manilsmalla@gmail message Message
parameters .com

26
Password: *****

Table 6-1 : Login test cases

Test Description Actions/Input Expected Obtained Result


# Result

2.1 Verify JWT tokens. Authorization : Give access Give access


Bearer Token

2.2 Verify JWT tokens with Authorization : Show Error Error Message
no token. Bearer message shown

2.3 Verify JWT tokens with Authorization : Show Error Error Message
wrong token. Bearer Wrong message shown
Token

2.3 Verify JWT tokens with Show Error Error Message


no authentication header message shown

Table 6-2 : JWT Authentication test case

27
Test# Description Actions/Input Expected Obtained Result
Result

3.1 Email sending Subject: Validation Error Field Required


message
Body:

3.2 Email sending Subject: sample sub Email send Email sent
successfully
Body: sample content

Table 6-3 : Verification mail test case

6.2. Other testings

Since this is an ongoing project other tests like integration testing, system testing,
integration testing e.t.c. have yet to be performed.

Additionally higher level testings were performed by the Q.A. team at the
organization.

28
7. CONCLUSION

The project discussed in this report will be used for easy and online trading of
automobiles in Nepal. It is an ongoing project, with only limited features developed
currently. Further development is being done to complete the system as soon as possible.

The main objective of an internship is to let students work in real project.


Asterdio Inc. has provided us with an opportunity to work on an ongoing project and gain
valuable real life experience from it. The project has helped us to learn the various
techniques and tools used in the professional industry. It has also helped us learn how to
more effectively work inside an organization and on a team.

29
REFRENCES

Asterdio Inc. (2020), Retrieved from https://asterdio.com/

Hamro Bazaar. (2020), Retrieved from https://hamrobazaar.com/

Car Wale. (2020), Retrieved from https://www.carwale.com/aboutus/

Car Dekho. (2020), Retrieved from https://www.cardekho.com/info/about_us/

MDN Web Docs. (2020). MVC. Retrieved from https://developer.mozilla.org/en-


US/docs/Glossary/MVC

Building an API with TypeScript, Express.js and Sequelize. (2019 June 19). Retrieved
from http://rsseau.fr/en/programming/2019/06/19/express-typescript.html

Wikipedia Agile Scrum. (2020) . Retrieved from


https://en.wikipedia.org/wiki/Scrum_(software_development)

Atlassian Agile Coach. (2020). Retrieved from https://www.atlassian.com/agile/scrum

TypeScript. (2020). Retrieved from https://www.typescriptlang.org/

TypeScript Documentation. (2020, March 8). Retrieved from


https://www.typescriptlang.org/docs/

NodeJS. Retrieved from https://nodejs.org/

NodeJS. Documentation . Retrieved from https://nodejs.org/en/docs/

Akande, A. (2019, July 13). Getting Started with PostgreSQL on Windows. Retrieved
from https://medium.com/@aeadedoyin/getting-started-with-postgresql-on-windows-
201906131300-ee75f066df78
30
31

You might also like