Computer Science Internship Report Leena AI

My computer science internship report working as a software engineer intern at Leena AI.

Software Engineer Intern
1
Internship Offer Letter
Software Engineer Intern
2
Certificate of Completion
Mentor Name and Sign Student Name with Sign
Software Engineer Intern
3
Acknowledgement
First, I would like to thank Supervisor Mr. Anand Prajapati, Co-Founder, and the CTO at
Leena AI for giving me the internship opportunity.
During my summer internship, the staff at Leena AI and persons guiding me were very helpful
and extended their valuable guidance and help whenever required for the projects which I
worked on. I had many engaging conversations with everyone about their work and the
progress in the field of Software Development.
I would like to take this opportunity to express my deepest gratitude to my mentor, Dr.
Raghunath Reddy for guiding, supporting and helping me in every possible way.
I learned a lot about the industry and gained more insight. I would also like to express my
deepest gratitude to Dr. Deepak Garg (HoD CSE), Dr. Sudhir Chandra (Dean of SEAS) and
Placement Cell of the university for giving me an opportunity to be a part of this internship.
Harshit Singhai
E16CSE147
B.Tech. CSE, 7th Sem
Software Engineer Intern
4
Table of Contents
S. No. Particulars Page No.
1 Abstract 5
2 About company 6
3 Introduction 7
4 Problem Statement 8
5 Why and how the project was chosen 9
6 Background Search 10
7 Project Design Diagram 11
8 Functionality of the project and snap shots 12
9 Testing procedure 18
10 Implementation details 19
11 Project Development Time Schedule 20
13 Learning and reflections from the project 21
14 Conclusion 22
15 Challenges and Future Enhancements 23
16 References 23
Software Engineer Intern
5
Abstract
This report describes my internship at Leena AI. Leena AI is a leading company operating in
hr-tech domain which provides an AI-powered HR Assistant providing instant responses to
employee queries improving employee experience.
The scope of this document is to identify and describe the analysis carried out, projects
completed, experience gained and focuses on the achievement as a software engineer Intern.
Bennett University provides that glorious opportunity to their students of having an internship
within their bachelor program.
During my internship at Leena AI, I was introduced to some new technologies, languages and
frameworks. But the most amazing experience was to work in a multicultural work
environment culture.
Overall, I am very satisfied with the results of my internship. I was able to use my software
development knowledge and apply it a real organization working in a real-life problem. I was
able to see some differences in functioning that resulted from my efforts. Due to the character
of the internship and the short time period spent at Leena AI, I took this experience as an
opportunity to provide Leena AI with the skills which I learned while a computer science
student at Bennett University.
Software Engineer Intern
6
About the Company
Launched in 2017, the startup is a recent graduate of Y Combinator, an American seed
accelerator, and announced a $2 million seed round from a variety of investors including
Snapdeal co-founders Kunal Bahl and Rohit Bansal and Elad Gil.
Leena AI, a member of the Y Combinator Summer 2018 class, wants to change that by
building HR bots to answer questions for employees instantly. Leena AI improves the
experience for the HR manager and employees by facilitating a chatbot. It guarantees
immediate answers to staff queries, leaves inquiries, tickets and also maintains handy
helpful data such as salary, policy updates and company rules.
The HR problem is full of deliberations—finding out answers to basic questions like
how to a get a new baby on their health insurance requires a call to a help desk or a
series of emails, even though the information is out there in the HR policy. Leena AI
feels that a chatbot is a good way to solve this problem and can save a lot of time
searching or calling for answers that can be easily found. Moreover, they learned that
most of the questions are fairly easy and require a simple index for a system to learn.
Taking a look from HR managers ' perspective, it allows them to readily handle
discussions and communicate all organizational updates at one location. Leena AI is also
a partner for Facebook Workplace and can be integrated with other platforms such as
Slack and Workplace.
At present, Leena AI has more than 200,00+ users worldwide with more than 15 paying
clients including the big names Coca-Cola, Pidilite, Reliance Capital, Kohler, Vodafone Idea,
Ceat, Maruti Suzuki, Cairn, Tata Technologies, Marico, Piramal, KEC Axis Bank, Pearson,
Saint Gobain among others.
Software Engineer Intern
7
Introduction
As a software engineering intern, I was in charge of a number of projects including
creating a notification web application to make it easier for HR to schedule a notification
for their employees. I was given the freedom to execute every project fully from solution
architecture to implementation and testing while acting on feedback received from my
mentor.
This internship has been a great learning experience as I have discovered most of the
tools and techniques I used during the internship. These range from web development
and good practices to database operations, code organization, code splitting and learning
about The Twelver-Factor App architecture. I have also met a number of people who are
passionate about innovation during community events and talks who have made this
journey truly inspiring from a human as well as a technological standpoint.
Prior to internship, I’ve already had experience working with React – A JavaScript
library for building user interfaces. It is mostly used to create a single-page web
application as it is optimal for fetching rapidly changing data that needs to be recorded.
React makes it painless to create interactive UIs. Design simple interface for each state
in your application, and when your data changes, the right components will be efficiently
updated by React. It follows “Learn Once, Write Anywhere” methodology.
Before joining Leena AI, I was already familiarized and comfortable with MERN stack
i.e MongoDB, Express, React and Node.js as I’ve used it for my semester projects which
helped me in the interview process. Initially, I was given the role as a frontend intern,
but after competition of my first project I was presented with an opportunity to get some
production experience in backend and database as well.
Software Engineer Intern
8
Problem Statement
Leena AI wanted a dashboard where admins can configure trigger-based notifications to
a set of users, or broadcast simple bot messages across users, as well as monitor the
metrics of all sent push notifications. Messages can be configured by trigger (an event
that causes the push to be sent), the audience (who the message is sent to), schedule
(when is the push to be sent), and response (what actions can the user take to the push, if
any).
The solution was to build a web application which enables HR to configure and schedule
a notification message that will be sent to all the employees across the company. The
employee response will be analysed and shown in the forms of pie chart in the
application.
Another problem the company was facing was the time for the new recruit to make
himself comfortable with the company coding practices and libraries that are followed by
the company. Traditionally, the new recruit and a senior software engineer sit together
for long hours to transfer knowledge as a result of which lots of working hours are
wasted.
My task was to build a bootstrap starter project kit for developers so that the new joining
can quickly start a new project following the best practices preferred by the company. I
talked to the senior engineers and project managers, made a list of libraries and
methodology they want the new recruiter to follow and made a starter developer project
skeleton containing all the libraries, methodologies, best practices and push it to
Bitbucket along with the documentation. Now, the new developer is required to clone the
repository from Bitbucket, read the documentation, get comfortable with the company
best practices and start building on top of it. It also helps other developers to quickly
start a new project via the project starter developer skeleton kit.
As the company grew, new employees were hired, which in turn made it difficult for the
frontend engineers to regularly update the “about us” page of the website with the details
of the new employee as the employee details were hardcoded in the website.
My task was to make a simple RESTful API using node, connect the google spreadsheet
with the MongoDB using MongoDB Stitch – which allows Authentication, data access
regulations and services to be readily configured. The HR manager will just update the
google spreadsheet with the new information. The new information will be automatically
reflected on the website. The website will make an API call to the backend to populate
the “about us” page every time the user visits the page. This automated the task of
manually updating the website’s “about us page”
Software Engineer Intern
9
Why and how the project was chosen
Leena AI wanted a web application where admins can configure notifications and send it
to a set of users. Broadcast simple bot messages across users, as well as monitor the
metrics of all sent push notifications.
They also wanted to automate the process of updating the “about us” page of the website.
The information was hardcoded which made it difficult for developers to constantly
change or add new information. Thus, RESTful API was implemented which made it
easier for HR to update and add new information using google spreadsheets. Google
spreadsheets were directly connected to the database using MongoDB Stich thus, making
it easier to edit, update or delete information.
Apart from it, they wanted to make a get-started kit to bootstrap both the frontend and
the backend project with all the basic dependencies and code structure that are followed
through the company resulting in quicker development.
Few of the project was developed using the older version of React 12 and React 14
which made it difficult in terms of code maintainability, readability, and complexity.
Leena AI wanted to re-write some features of their existing code to new version 16.8 as
the new version was much optimized and provides better out-of-the-box features. React
16.2 gave a lot of features out of the box making the projects running the older version
much faster.
There were lots of small projects in which I was asked to read the existing code and add
a new feature. Reading other’s code helped me get better by developing a new way of
solving problems.
Software Engineer Intern
10
Background Search
Before starting out, I learned about the new version of React 16.8. I read about new
features and concepts like Hooks, Fragments, Lazy, Redux, Memo, Server-Side
rendering, Debounce, Socket.io, Immutability, and Promises.
I went much further in those areas, discovered many new tools and programming
languages (TypeScript) as well as coding patterns (Singleton, lazy initialization, factory
method).
Working in a team also made me comfortable with using Git and Bitbucket. I was also
familiarized with the ESLint – code analysis tool for identifying problematic patterns
found in JavaScript code. Using ESLint helped me write maintainable, clean and
readable code.
I also learned how to use functional programming together with object-oriented
programming and when to use what. Brushed up my JavaScript concepts.
Learning about TypeScript further enhanced my ability to write maintainable code.
Typescript is a superset of Javascript which was used for backend across the
organization. TypeScript has some major benefits, which includes, support for Classes
and Modules, Type-checking, ES6 features support, Class library API definition, support
for Javascript packaging, and a lot more.
Further, my concepts working with Redux, ContextAPI, Hooks, JWT cookies, local
storage, and Debounce were strengthened as I learned a lot using them and debugging
the errors.
I used libraries like UglifyJS 3, a javascript parser, minifier, compressor, and beautifier
toolkit. UglifyJS reduced the size of the production build resulting in better performance.
The reduced size increased the response time of the website by making it load faster.
Increased performance by reducing repeated API calls by storing the data in browser
cache, local storage and cookies. Storing data in browser helps with faster access as it
avoids network call.
For node.js, I leant about express, mongoose, JWT token, Socket.io, underscore.js,
Lodash, uglifyJS2, nodemailer among other libraries.
Software Engineer Intern
11
Project Design Diagram
An overview of push notification architecture. How different components interact with each
other and what role does each component have.
Software Engineer Intern
12
Functionality of the project and snap shots
A dashboard where admins can configure trigger-based notifications to a set of users, or
broadcast simple bot messages across users, as well as monitor the metrics of all sent push
notifications. Messages can be configured by trigger (event that causes the push to be sent),
audience (who the message is sent to), schedule (when is the push to be sent), and response
(what actions can the user take to the push, if any).
Following prominent features has been implemented:
 It allows scheduling the broadcast message at a specific time. Time zone is
customizable i.e. admin is able to choose if he wants to send the message in the user's
time zone or UTC.
 Along with each push notification, there is a progress percentage that shows the
progress of the current broadcast message. It also displays how many messages have
been successful and failed along with status of delivery and read status. There is also
an option to cancel an ongoing/scheduled broadcast message.
 While scheduling a broadcast, it allows filtering audience using Boolean conditions.
Conditions are allowed over channels and params of a user.
 For content of a broadcast, user can either execute a module or create new module
defining the content of the message. User can also connect the newly created push
module to an existing module within the flow.
Bot user
 A bot user receives notifications in all the platforms, namely, workplace, messenger,
web client, android app, outlook, slack, hangouts, MS teams.
 On clicking the notification, the user interacts with the notification or discard it.
 Clicking the notification, invoke the flow related to the notification.
 User is able to see a list of previous notifications sent out to him.
 Interacting with a notification on one platform, disappear/’show read’ on other
platforms.
Software Engineer Intern
13
 See the distribution of responses of a public poll in a bar chart when selecting a quick
reply.
HR Admin
 HR admin is able to broadcast a notification to users containing a short notification
text and a longer module text. The short message becomes the subject and the module
text becomes the body if the notification needs to be sent via email.
 HR admin, is able to multicast a notification to a set of users based on user params.
 Send a notification to a list of users.
 Include images, video and/or a document to the selected set of users.
 View a list of all notifications sent out by me.
 See the audience, the subject of the notification, the message, the status of the
notification and the sender’s name as details of the notification.
 Choose a date & time for the notification to be pushed.
 Reschedule a notification.
 Delete a notification yet to be sent.
 Not be able to delete a notification once it has been sent out to even a single user.
 Stop a notification currently being pushed which results in no further delivery of the
notification to new users and behaviour as expected to the users the notification has
reached.
 Resend a notification to a different audience by clicking on the resend button.
 Check the click rate of the notification as an indication of the notification being read.
 Attach a poll to a notification by adding the question as the module bot says and
options as quick replies.
 Set the poll as private or public.
 Distribution of responses in a bar chart next to the push notification with a poll.
Software Engineer Intern
14
Software Engineer Intern
15
Software Engineer Intern
16
Software Engineer Intern
17
Software Engineer Intern
18
Testing Procedure
At Leena AI, there was no testing team as such. The developers are expected to test and
maintain their platform by trying different edge case and thinking from an end-user
perspective about how he/she might interact with the system. Before releasing into
production, there will be an internal assessment testing in which different stakeholders related
to the project will internally use the platform and report the bug to me if any. After internal
testing, the platform is deployed in production.
Software Engineer Intern
19
Implementation details
The project is developed using React 16.8 and Node.js
In React, the entire project is made using Hooks, Fragments, Lazy Loading, Redux,
Memo, Debounce, Socket.io, Immutability. Axios a Promise based HTTP client is used
to make API call in the backend. TypeScript is used to write maintainable and readable
code. ESLint – code analysis tool for identifying problematic patterns found in
JavaScript code was used to follow best code practices.
The projects follow The Twelve-Factor App methodology (a methodology for building
modern, scalable, maintainable software-as-a-service apps.)
Git was used for version control and Bitbucket was used as a version control repository
hosting service.
React state was managed through Redux and ContextAPI. JWT cookies, local storage
was used to store data in the browser as it helps with faster access and avoids network
call.
Libraries like UglifyJS 3, and node-minify was used to reduce the size of the production
build resulting in better performance. The reduced size increased the response time of
For RESTful API was developed using node.js, express, mongoose, JWT token,
Socket.io, lodash, and typescript. Mongoose was used to connect the backend with the
database. Socket.io was used to keep track of the scheduled notification in real-time.
Express to make endpoints for serving GET, POST, PUT, DELETE request. Await/Async
and Promises to handle the asynchronous nature of JavaScript. CRUD operations were
developed using MongoDB.
MongoDB Compass was used as a Graphical User Interface for MongoDB to analyse and
understand the contents of the data. Embedded Documents were used as data model to
describe a one-to-many relationship.
JOI was used for Object Schema Validation. Authorization and Authentication were used to
check if the user is authenticated and authorized to make a request. JSON Web tokens used
for authorization. Middleware to protect routes for authorized users.
Jest (a delightful JavaScript Testing Framework with a focus on simplicity) was used for unit
testing of different functions in Node.js
Postman was used to test the RESTful API. Npm a package manager for the JavaScript
programming language used to install various libraries for both React and Node.js
Software Engineer Intern
20
Project Development Time Schedule
The company were using Agile project methodology to breaks down projects into small
pieces that are completed in work sessions that run from the design phase to testing and
quality assurance. At each sprint, the most priority feature was expected to be completed.
Sprints were generally short, running over days or weeks; they're typically two to four weeks
long. At the end of each spring, I was expected to complete some features of the website, get
it tested, document it, then start planning about the next sprint.
Agile Project Methodology made it easier for me as changes can be discussed and features
can be newly effected or removed based on feedback. This effectively provides the customer
with the finished system they want or need.
Issue tracking tools like JIRA that allows bug tracking, and agile project management was
also used to keep track of important priority features. If the internal testing team found any
bug or any features not working as expected will open an issue in JIRA and assigned it to me.
Work culture allowed me to stay focused on delivering iterative and incremental value, as
fast as possible with customizable scrum boards.
I completed the first version of Push Notification on 13th June. After the competition of the
first version, I was assigned to different projects throughout the remainder of my internship.
From 25th of June, I started working on Push Notification 2.0 adding other features like add
images or convert the notification into a poll.
The timeline was given for all the tasks assigned to me and I’ve completed all my projects
within the given timeline.
Software Engineer Intern
21
Learning and reflections from the project
I acquired a better understanding of web development and research through hands-on
experience. Leena AI, being a young start-up was an ideal situation for me to showcase my
skills and solve a real-world problem that will be actually used by people. From making app
for semester projects to solving a real-world problem and deploying it in production, I felt as
though I have a strong understanding of the subject on what it would take to peruse a career
in software development.
Being a developer, I also witnessed the complete lifecycle on how the development process
works, how to turn an idea into code and deploy it in production.
As a software engineering intern, I was in charge of a number of projects including
creating a notification web application to make it easier for HR to schedule a notification
for their employees. I was given freedom to execute every project fully from solution
architecture to implementation and testing while acting on feedback received from my
mentor.
Having completed an entire project on my own and shipped it to production gave me
immense satisfaction and confidence to work on my ideas and bring them to reality. As a
developer, I learned how projects are maintained, integrated and shipped. Working as a
developer, completely taking ownership of the project and delivering it on time, made
me confident on taking bigger challenges in the future for my capstone project.
During this internship, I had the chance to work on many aspects of Software Engineering. I
developed new technical knowledge and soft skills while communicating with other
developers. I have also discovered a vibrant start-up ecosystem from the inside, this
experience has shifted my career plans towards building start-ups and reinforced my interest
in expatriation.
Software Engineer Intern
22
Conclusion
Working as a software engineer intern in a young startup, I felt working in a startup is
essential in term of growth, as they place loads of responsibility on their interns. They’ll hire
because of skills, but founders expect much more.
At Leena AI, I was directly working under the supervision and mentorship of the CTO of the
company. Founders and interns work together; there’s no middle management, so you learn
from the best.
Startups make you work hard, interns work under extreme pressure. Work-life balance is
tough and exhaustive hours at the office makes you tired. Having been a part of such work
culture help me equipped better to work under extreme pressure and tight deadline.
Startups need to grow fast, as a result interns have the license to show off their brilliance and
skills to deliver results with fresh designs, implement new concepts and discuss new ideas.
Apart from my stipend, other perks which were useful for me as a young aspiring software
engineer were a unique growth opportunity, the ability to get the most out of limited
resources, ability to learn, diverse responsibilities, added value and appreciation, control over
the project, flexibility, interesting and challenging environment.
I am extremely satisfied by this internship and I am grateful to Leena AI for providing me
with this opportunity.
Software Engineer Intern
23
Challenges and Future Enhancements
I designed the solution from our side, thinking about database tables and code architecture. I
discussed my findings with senior developers whose input often made me rethink my
approach.
The code architecture was very different from what I had encountered before with a clear
separation between the business logic and file structuring. At first, it found it useless but once
I wrote code using a proper structure, I quickly understood the advantages of such an
architecture and managed to find my way between the file more quickly.
The code review helped me a lot by developing a better understanding and giving me another
dimension and a new way to solve problems. The code reviewer challenged my
implementation decisions and showed me how to comply it to make it better. I began to use
best practices so as to reduce the complexity.
Before joining Leena AI, I had a very limited knowledge of React, Node.js and reasonable
bases in Object Oriented Programming with JavaScript. I went further in those areas,
discovered many new tools (Postman, MongoDB Compass, JIRA, Bitbucket and Git),
programming languages (TypeScript) as well as architecture like The Twelver-Factor App.
For the future enhancement, there are lots of features which can be added to the project.
The current feature holds good for the current requirement, but in future, if the
requirement change then features can be added or removed from the existing project.
I think the application can be made better with features like uploading video files or
selecting users by uploading an excel file.
Overall, it was a great experience being a part of such an amazing workplace culture and
project. The internship certainly made me better software engineer and equipped me
better understanding of how to handle a real world projects.
Software Engineer Intern
24
Video Presentation
https://www.youtube.com/watch?v=0fWSic8Aj8Y&feature=youtu.be
Software Engineer Intern
25
References
https://www.leena.ai/
https://reactjs.org/
https://nodejs.org/en/
https://www.typescriptlang.org/
https://www.mongodb.com/
https://12factor.net/
https://www.atlassian.com/software/jira
https://bitbucket.org/product
https://git-scm.com/
https://expressjs.com/
https://underscorejs.org/
https://lodash.com/
https://github.com/axios/axios
https://eslint.org/
https://redux.js.org/
https://reactjs.org/docs/hooks-intro.html
https://mongoosejs.com/
https://socket.io/
https://www.npmjs.com/package/uglify-js
https://reactjs.org/docs/getting-started.html
https://www.npmjs.com/package/debounce

Recomendados

Computer Science Internship Report PDF Leena AI von
Computer Science Internship Report PDF Leena AIComputer Science Internship Report PDF Leena AI
Computer Science Internship Report PDF Leena AIshadowhazard77
19K views25 Folien
Final Report for Summer internship at Software House von
Final Report for Summer internship at Software HouseFinal Report for Summer internship at Software House
Final Report for Summer internship at Software HouseSaad Shahzad
19.4K views41 Folien
Report on web development von
Report on web developmentReport on web development
Report on web developmentAJEETKUMAR932614
29.7K views14 Folien
Internship report von
Internship reportInternship report
Internship reportAlok Chaudhary
14.8K views27 Folien
Internship report von
Internship reportInternship report
Internship reportSabana Maharjan
2.2K views32 Folien
Computer science industrial training report carried out at web info net ltd ... von
Computer science  industrial training report carried out at web info net ltd ...Computer science  industrial training report carried out at web info net ltd ...
Computer science industrial training report carried out at web info net ltd ...rashid muganga
19.6K views52 Folien

Más contenido relacionado

Was ist angesagt?

Training report on web developing von
Training report on web developingTraining report on web developing
Training report on web developingJawhar Ali
59.6K views30 Folien
Web Development on Web Project Report von
Web Development on Web Project ReportWeb Development on Web Project Report
Web Development on Web Project ReportMilind Gokhale
220.3K views77 Folien
Final Year Project Presentation von
Final Year Project PresentationFinal Year Project Presentation
Final Year Project PresentationSyed Absar
221.1K views34 Folien
Final Internship presentation von
Final Internship presentationFinal Internship presentation
Final Internship presentationAnjan Bhattrai
131.9K views32 Folien
Internship Report von
Internship ReportInternship Report
Internship ReportJobayer Ahmmed
2.8K views60 Folien
ERP on School Management System von
ERP on School Management SystemERP on School Management System
ERP on School Management SystemAmit Gandhi
36.5K views104 Folien

Was ist angesagt?(20)

Training report on web developing von Jawhar Ali
Training report on web developingTraining report on web developing
Training report on web developing
Jawhar Ali59.6K views
Web Development on Web Project Report von Milind Gokhale
Web Development on Web Project ReportWeb Development on Web Project Report
Web Development on Web Project Report
Milind Gokhale220.3K views
Final Year Project Presentation von Syed Absar
Final Year Project PresentationFinal Year Project Presentation
Final Year Project Presentation
Syed Absar221.1K views
Final Internship presentation von Anjan Bhattrai
Final Internship presentationFinal Internship presentation
Final Internship presentation
Anjan Bhattrai131.9K views
ERP on School Management System von Amit Gandhi
ERP on School Management SystemERP on School Management System
ERP on School Management System
Amit Gandhi36.5K views
Internship Final Report von Nadia Nahar
Internship Final Report Internship Final Report
Internship Final Report
Nadia Nahar137K views
BSc CSIT Final Year Project Report on Hamro Krishi - Nepal von Sirish Paudel
BSc CSIT Final Year Project Report on Hamro Krishi - NepalBSc CSIT Final Year Project Report on Hamro Krishi - Nepal
BSc CSIT Final Year Project Report on Hamro Krishi - Nepal
Sirish Paudel13.7K views
Final year internship presentation von Nischal0101
Final year internship presentationFinal year internship presentation
Final year internship presentation
Nischal01018K views
Industrial Training Report (Lenovo) von Kwong Cheong Ng
Industrial Training Report (Lenovo)Industrial Training Report (Lenovo)
Industrial Training Report (Lenovo)
Kwong Cheong Ng8.1K views
Industrial training report von DilShad8
Industrial training reportIndustrial training report
Industrial training report
DilShad82.1K views
Internship Project Power Point Presentation von David Mugerwa
Internship Project Power Point PresentationInternship Project Power Point Presentation
Internship Project Power Point Presentation
David Mugerwa210.4K views
computer science internship report von kaahwa Armstrong
computer science  internship reportcomputer science  internship report
computer science internship report
kaahwa Armstrong56.7K views
online education system project report von Hagi Sahib
online education system project reportonline education system project report
online education system project report
Hagi Sahib59.8K views

Similar a Computer Science Internship Report Leena AI

Software As A Service Essay von
Software As A Service EssaySoftware As A Service Essay
Software As A Service EssayJessica Cannella
2 views80 Folien
Different Types Of Software Types And Their Uses von
Different Types Of Software Types And Their UsesDifferent Types Of Software Types And Their Uses
Different Types Of Software Types And Their UsesCustom Papers Online Portland State University
4 views22 Folien
Information architecture for websites and intranets von
Information architecture for websites and intranetsInformation architecture for websites and intranets
Information architecture for websites and intranetsContent Formula
1.5K views17 Folien
projectreport.pdf von
projectreport.pdfprojectreport.pdf
projectreport.pdfAyushGupta540746
28 views112 Folien
Resume von
ResumeResume
Resumearvind1092
102 views5 Folien
Web deveopment using React js and Node js with SQL. von
Web deveopment using React js and Node js with SQL.Web deveopment using React js and Node js with SQL.
Web deveopment using React js and Node js with SQL.Jayant Surana
1.9K views32 Folien

Similar a Computer Science Internship Report Leena AI(20)

Information architecture for websites and intranets von Content Formula
Information architecture for websites and intranetsInformation architecture for websites and intranets
Information architecture for websites and intranets
Content Formula1.5K views
Web deveopment using React js and Node js with SQL. von Jayant Surana
Web deveopment using React js and Node js with SQL.Web deveopment using React js and Node js with SQL.
Web deveopment using React js and Node js with SQL.
Jayant Surana1.9K views
Xyz Software Games Project Management von Kristin Oliver
Xyz Software Games Project ManagementXyz Software Games Project Management
Xyz Software Games Project Management
Kristin Oliver3 views
Software Engineering Research Paper von April Watson
Software Engineering Research PaperSoftware Engineering Research Paper
Software Engineering Research Paper
April Watson5 views
Harish software engineer (rpa) 4+ yrs exp von Harish M
Harish software engineer (rpa) 4+ yrs expHarish software engineer (rpa) 4+ yrs exp
Harish software engineer (rpa) 4+ yrs exp
Harish M225 views
Evaluation Of A Project Achievement Evaluation von Rebecca Evans
Evaluation Of A Project Achievement EvaluationEvaluation Of A Project Achievement Evaluation
Evaluation Of A Project Achievement Evaluation
Rebecca Evans4 views
Objectives Of Website Development Project von Kate Loge
Objectives Of Website Development ProjectObjectives Of Website Development Project
Objectives Of Website Development Project
Kate Loge2 views
INT303 Beyond The Intranet Digital Workplace Apps, Solutions n Bots #365EDUCon von Kanwal Khipple
INT303 Beyond The Intranet Digital Workplace Apps, Solutions n Bots #365EDUConINT303 Beyond The Intranet Digital Workplace Apps, Solutions n Bots #365EDUCon
INT303 Beyond The Intranet Digital Workplace Apps, Solutions n Bots #365EDUCon
Kanwal Khipple102 views

Último

kibria_portfolio.pdf von
kibria_portfolio.pdfkibria_portfolio.pdf
kibria_portfolio.pdfMasumKhan59
7 views17 Folien
Topic 36.pptx von
Topic 36.pptxTopic 36.pptx
Topic 36.pptxsaleh176
7 views6 Folien
reStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdf von
reStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdfreStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdf
reStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdfKen Fuller
242 views22 Folien
Part 6.pptx von
Part 6.pptxPart 6.pptx
Part 6.pptxSheldon Byron
6 views34 Folien
Understanding the power of YouAi MindStudio.pdf von
Understanding the power of YouAi  MindStudio.pdfUnderstanding the power of YouAi  MindStudio.pdf
Understanding the power of YouAi MindStudio.pdfisamusak
5 views1 Folie
WordCamp (Why fret over AI overlords when you can befriend them).pdf von
WordCamp (Why fret over AI overlords when you can befriend them).pdfWordCamp (Why fret over AI overlords when you can befriend them).pdf
WordCamp (Why fret over AI overlords when you can befriend them).pdfBiaAhmed1
26 views14 Folien

Último(17)

Topic 36.pptx von saleh176
Topic 36.pptxTopic 36.pptx
Topic 36.pptx
saleh1767 views
reStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdf von Ken Fuller
reStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdfreStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdf
reStartEvents 12:7 Nationwide TS:SCI & Above Employer Directory.pdf
Ken Fuller242 views
Understanding the power of YouAi MindStudio.pdf von isamusak
Understanding the power of YouAi  MindStudio.pdfUnderstanding the power of YouAi  MindStudio.pdf
Understanding the power of YouAi MindStudio.pdf
isamusak5 views
WordCamp (Why fret over AI overlords when you can befriend them).pdf von BiaAhmed1
WordCamp (Why fret over AI overlords when you can befriend them).pdfWordCamp (Why fret over AI overlords when you can befriend them).pdf
WordCamp (Why fret over AI overlords when you can befriend them).pdf
BiaAhmed126 views
Software Engineer's Career Management Toolkit von ozgengungor1
Software Engineer's Career Management ToolkitSoftware Engineer's Career Management Toolkit
Software Engineer's Career Management Toolkit
ozgengungor126 views
114. BP International [2023] von Manu Mitra
114. BP International [2023]114. BP International [2023]
114. BP International [2023]
Manu Mitra6 views
113. BP International von Manu Mitra
113. BP International113. BP International
113. BP International
Manu Mitra7 views
Resume_McCauleyFynnBullock-1 (1).pdf von FynnBullock
Resume_McCauleyFynnBullock-1 (1).pdfResume_McCauleyFynnBullock-1 (1).pdf
Resume_McCauleyFynnBullock-1 (1).pdf
FynnBullock17 views
SUDIP DHAR Resume.pdf von Sudip Dhar
SUDIP DHAR  Resume.pdfSUDIP DHAR  Resume.pdf
SUDIP DHAR Resume.pdf
Sudip Dhar14 views
GLS-Recognition-Award-2023 von Manu Mitra
GLS-Recognition-Award-2023GLS-Recognition-Award-2023
GLS-Recognition-Award-2023
Manu Mitra5 views
Danny Gaethofs CV - n English.pdf von Danny Gaethofs
Danny Gaethofs  CV - n English.pdfDanny Gaethofs  CV - n English.pdf
Danny Gaethofs CV - n English.pdf
Danny Gaethofs13 views

Computer Science Internship Report Leena AI

  • 2. Software Engineer Intern 2 Certificate of Completion Mentor Name and Sign Student Name with Sign
  • 3. Software Engineer Intern 3 Acknowledgement First, I would like to thank Supervisor Mr. Anand Prajapati, Co-Founder, and the CTO at Leena AI for giving me the internship opportunity. During my summer internship, the staff at Leena AI and persons guiding me were very helpful and extended their valuable guidance and help whenever required for the projects which I worked on. I had many engaging conversations with everyone about their work and the progress in the field of Software Development. I would like to take this opportunity to express my deepest gratitude to my mentor, Dr. Raghunath Reddy for guiding, supporting and helping me in every possible way. I learned a lot about the industry and gained more insight. I would also like to express my deepest gratitude to Dr. Deepak Garg (HoD CSE), Dr. Sudhir Chandra (Dean of SEAS) and Placement Cell of the university for giving me an opportunity to be a part of this internship. Harshit Singhai E16CSE147 B.Tech. CSE, 7th Sem
  • 4. Software Engineer Intern 4 Table of Contents S. No. Particulars Page No. 1 Abstract 5 2 About company 6 3 Introduction 7 4 Problem Statement 8 5 Why and how the project was chosen 9 6 Background Search 10 7 Project Design Diagram 11 8 Functionality of the project and snap shots 12 9 Testing procedure 18 10 Implementation details 19 11 Project Development Time Schedule 20 13 Learning and reflections from the project 21 14 Conclusion 22 15 Challenges and Future Enhancements 23 16 References 23
  • 5. Software Engineer Intern 5 Abstract This report describes my internship at Leena AI. Leena AI is a leading company operating in hr-tech domain which provides an AI-powered HR Assistant providing instant responses to employee queries improving employee experience. The scope of this document is to identify and describe the analysis carried out, projects completed, experience gained and focuses on the achievement as a software engineer Intern. Bennett University provides that glorious opportunity to their students of having an internship within their bachelor program. During my internship at Leena AI, I was introduced to some new technologies, languages and frameworks. But the most amazing experience was to work in a multicultural work environment culture. Overall, I am very satisfied with the results of my internship. I was able to use my software development knowledge and apply it a real organization working in a real-life problem. I was able to see some differences in functioning that resulted from my efforts. Due to the character of the internship and the short time period spent at Leena AI, I took this experience as an opportunity to provide Leena AI with the skills which I learned while a computer science student at Bennett University.
  • 6. Software Engineer Intern 6 About the Company Launched in 2017, the startup is a recent graduate of Y Combinator, an American seed accelerator, and announced a $2 million seed round from a variety of investors including Snapdeal co-founders Kunal Bahl and Rohit Bansal and Elad Gil. Leena AI, a member of the Y Combinator Summer 2018 class, wants to change that by building HR bots to answer questions for employees instantly. Leena AI improves the experience for the HR manager and employees by facilitating a chatbot. It guarantees immediate answers to staff queries, leaves inquiries, tickets and also maintains handy helpful data such as salary, policy updates and company rules. The HR problem is full of deliberations—finding out answers to basic questions like how to a get a new baby on their health insurance requires a call to a help desk or a series of emails, even though the information is out there in the HR policy. Leena AI feels that a chatbot is a good way to solve this problem and can save a lot of time searching or calling for answers that can be easily found. Moreover, they learned that most of the questions are fairly easy and require a simple index for a system to learn. Taking a look from HR managers ' perspective, it allows them to readily handle discussions and communicate all organizational updates at one location. Leena AI is also a partner for Facebook Workplace and can be integrated with other platforms such as Slack and Workplace. At present, Leena AI has more than 200,00+ users worldwide with more than 15 paying clients including the big names Coca-Cola, Pidilite, Reliance Capital, Kohler, Vodafone Idea, Ceat, Maruti Suzuki, Cairn, Tata Technologies, Marico, Piramal, KEC Axis Bank, Pearson, Saint Gobain among others.
  • 7. Software Engineer Intern 7 Introduction As a software engineering intern, I was in charge of a number of projects including creating a notification web application to make it easier for HR to schedule a notification for their employees. I was given the freedom to execute every project fully from solution architecture to implementation and testing while acting on feedback received from my mentor. This internship has been a great learning experience as I have discovered most of the tools and techniques I used during the internship. These range from web development and good practices to database operations, code organization, code splitting and learning about The Twelver-Factor App architecture. I have also met a number of people who are passionate about innovation during community events and talks who have made this journey truly inspiring from a human as well as a technological standpoint. Prior to internship, I’ve already had experience working with React – A JavaScript library for building user interfaces. It is mostly used to create a single-page web application as it is optimal for fetching rapidly changing data that needs to be recorded. React makes it painless to create interactive UIs. Design simple interface for each state in your application, and when your data changes, the right components will be efficiently updated by React. It follows “Learn Once, Write Anywhere” methodology. Before joining Leena AI, I was already familiarized and comfortable with MERN stack i.e MongoDB, Express, React and Node.js as I’ve used it for my semester projects which helped me in the interview process. Initially, I was given the role as a frontend intern, but after competition of my first project I was presented with an opportunity to get some production experience in backend and database as well.
  • 8. Software Engineer Intern 8 Problem Statement Leena AI wanted a dashboard where admins can configure trigger-based notifications to a set of users, or broadcast simple bot messages across users, as well as monitor the metrics of all sent push notifications. Messages can be configured by trigger (an event that causes the push to be sent), the audience (who the message is sent to), schedule (when is the push to be sent), and response (what actions can the user take to the push, if any). The solution was to build a web application which enables HR to configure and schedule a notification message that will be sent to all the employees across the company. The employee response will be analysed and shown in the forms of pie chart in the application. Another problem the company was facing was the time for the new recruit to make himself comfortable with the company coding practices and libraries that are followed by the company. Traditionally, the new recruit and a senior software engineer sit together for long hours to transfer knowledge as a result of which lots of working hours are wasted. My task was to build a bootstrap starter project kit for developers so that the new joining can quickly start a new project following the best practices preferred by the company. I talked to the senior engineers and project managers, made a list of libraries and methodology they want the new recruiter to follow and made a starter developer project skeleton containing all the libraries, methodologies, best practices and push it to Bitbucket along with the documentation. Now, the new developer is required to clone the repository from Bitbucket, read the documentation, get comfortable with the company best practices and start building on top of it. It also helps other developers to quickly start a new project via the project starter developer skeleton kit. As the company grew, new employees were hired, which in turn made it difficult for the frontend engineers to regularly update the “about us” page of the website with the details of the new employee as the employee details were hardcoded in the website. My task was to make a simple RESTful API using node, connect the google spreadsheet with the MongoDB using MongoDB Stitch – which allows Authentication, data access regulations and services to be readily configured. The HR manager will just update the google spreadsheet with the new information. The new information will be automatically reflected on the website. The website will make an API call to the backend to populate the “about us” page every time the user visits the page. This automated the task of manually updating the website’s “about us page”
  • 9. Software Engineer Intern 9 Why and how the project was chosen Leena AI wanted a web application where admins can configure notifications and send it to a set of users. Broadcast simple bot messages across users, as well as monitor the metrics of all sent push notifications. They also wanted to automate the process of updating the “about us” page of the website. The information was hardcoded which made it difficult for developers to constantly change or add new information. Thus, RESTful API was implemented which made it easier for HR to update and add new information using google spreadsheets. Google spreadsheets were directly connected to the database using MongoDB Stich thus, making it easier to edit, update or delete information. Apart from it, they wanted to make a get-started kit to bootstrap both the frontend and the backend project with all the basic dependencies and code structure that are followed through the company resulting in quicker development. Few of the project was developed using the older version of React 12 and React 14 which made it difficult in terms of code maintainability, readability, and complexity. Leena AI wanted to re-write some features of their existing code to new version 16.8 as the new version was much optimized and provides better out-of-the-box features. React 16.2 gave a lot of features out of the box making the projects running the older version much faster. There were lots of small projects in which I was asked to read the existing code and add a new feature. Reading other’s code helped me get better by developing a new way of solving problems.
  • 10. Software Engineer Intern 10 Background Search Before starting out, I learned about the new version of React 16.8. I read about new features and concepts like Hooks, Fragments, Lazy, Redux, Memo, Server-Side rendering, Debounce, Socket.io, Immutability, and Promises. I went much further in those areas, discovered many new tools and programming languages (TypeScript) as well as coding patterns (Singleton, lazy initialization, factory method). Working in a team also made me comfortable with using Git and Bitbucket. I was also familiarized with the ESLint – code analysis tool for identifying problematic patterns found in JavaScript code. Using ESLint helped me write maintainable, clean and readable code. I also learned how to use functional programming together with object-oriented programming and when to use what. Brushed up my JavaScript concepts. Learning about TypeScript further enhanced my ability to write maintainable code. Typescript is a superset of Javascript which was used for backend across the organization. TypeScript has some major benefits, which includes, support for Classes and Modules, Type-checking, ES6 features support, Class library API definition, support for Javascript packaging, and a lot more. Further, my concepts working with Redux, ContextAPI, Hooks, JWT cookies, local storage, and Debounce were strengthened as I learned a lot using them and debugging the errors. I used libraries like UglifyJS 3, a javascript parser, minifier, compressor, and beautifier toolkit. UglifyJS reduced the size of the production build resulting in better performance. The reduced size increased the response time of the website by making it load faster. Increased performance by reducing repeated API calls by storing the data in browser cache, local storage and cookies. Storing data in browser helps with faster access as it avoids network call. For node.js, I leant about express, mongoose, JWT token, Socket.io, underscore.js, Lodash, uglifyJS2, nodemailer among other libraries.
  • 11. Software Engineer Intern 11 Project Design Diagram An overview of push notification architecture. How different components interact with each other and what role does each component have.
  • 12. Software Engineer Intern 12 Functionality of the project and snap shots A dashboard where admins can configure trigger-based notifications to a set of users, or broadcast simple bot messages across users, as well as monitor the metrics of all sent push notifications. Messages can be configured by trigger (event that causes the push to be sent), audience (who the message is sent to), schedule (when is the push to be sent), and response (what actions can the user take to the push, if any). Following prominent features has been implemented:  It allows scheduling the broadcast message at a specific time. Time zone is customizable i.e. admin is able to choose if he wants to send the message in the user's time zone or UTC.  Along with each push notification, there is a progress percentage that shows the progress of the current broadcast message. It also displays how many messages have been successful and failed along with status of delivery and read status. There is also an option to cancel an ongoing/scheduled broadcast message.  While scheduling a broadcast, it allows filtering audience using Boolean conditions. Conditions are allowed over channels and params of a user.  For content of a broadcast, user can either execute a module or create new module defining the content of the message. User can also connect the newly created push module to an existing module within the flow. Bot user  A bot user receives notifications in all the platforms, namely, workplace, messenger, web client, android app, outlook, slack, hangouts, MS teams.  On clicking the notification, the user interacts with the notification or discard it.  Clicking the notification, invoke the flow related to the notification.  User is able to see a list of previous notifications sent out to him.  Interacting with a notification on one platform, disappear/’show read’ on other platforms.
  • 13. Software Engineer Intern 13  See the distribution of responses of a public poll in a bar chart when selecting a quick reply. HR Admin  HR admin is able to broadcast a notification to users containing a short notification text and a longer module text. The short message becomes the subject and the module text becomes the body if the notification needs to be sent via email.  HR admin, is able to multicast a notification to a set of users based on user params.  Send a notification to a list of users.  Include images, video and/or a document to the selected set of users.  View a list of all notifications sent out by me.  See the audience, the subject of the notification, the message, the status of the notification and the sender’s name as details of the notification.  Choose a date & time for the notification to be pushed.  Reschedule a notification.  Delete a notification yet to be sent.  Not be able to delete a notification once it has been sent out to even a single user.  Stop a notification currently being pushed which results in no further delivery of the notification to new users and behaviour as expected to the users the notification has reached.  Resend a notification to a different audience by clicking on the resend button.  Check the click rate of the notification as an indication of the notification being read.  Attach a poll to a notification by adding the question as the module bot says and options as quick replies.  Set the poll as private or public.  Distribution of responses in a bar chart next to the push notification with a poll.
  • 18. Software Engineer Intern 18 Testing Procedure At Leena AI, there was no testing team as such. The developers are expected to test and maintain their platform by trying different edge case and thinking from an end-user perspective about how he/she might interact with the system. Before releasing into production, there will be an internal assessment testing in which different stakeholders related to the project will internally use the platform and report the bug to me if any. After internal testing, the platform is deployed in production.
  • 19. Software Engineer Intern 19 Implementation details The project is developed using React 16.8 and Node.js In React, the entire project is made using Hooks, Fragments, Lazy Loading, Redux, Memo, Debounce, Socket.io, Immutability. Axios a Promise based HTTP client is used to make API call in the backend. TypeScript is used to write maintainable and readable code. ESLint – code analysis tool for identifying problematic patterns found in JavaScript code was used to follow best code practices. The projects follow The Twelve-Factor App methodology (a methodology for building modern, scalable, maintainable software-as-a-service apps.) Git was used for version control and Bitbucket was used as a version control repository hosting service. React state was managed through Redux and ContextAPI. JWT cookies, local storage was used to store data in the browser as it helps with faster access and avoids network call. Libraries like UglifyJS 3, and node-minify was used to reduce the size of the production build resulting in better performance. The reduced size increased the response time of For RESTful API was developed using node.js, express, mongoose, JWT token, Socket.io, lodash, and typescript. Mongoose was used to connect the backend with the database. Socket.io was used to keep track of the scheduled notification in real-time. Express to make endpoints for serving GET, POST, PUT, DELETE request. Await/Async and Promises to handle the asynchronous nature of JavaScript. CRUD operations were developed using MongoDB. MongoDB Compass was used as a Graphical User Interface for MongoDB to analyse and understand the contents of the data. Embedded Documents were used as data model to describe a one-to-many relationship. JOI was used for Object Schema Validation. Authorization and Authentication were used to check if the user is authenticated and authorized to make a request. JSON Web tokens used for authorization. Middleware to protect routes for authorized users. Jest (a delightful JavaScript Testing Framework with a focus on simplicity) was used for unit testing of different functions in Node.js Postman was used to test the RESTful API. Npm a package manager for the JavaScript programming language used to install various libraries for both React and Node.js
  • 20. Software Engineer Intern 20 Project Development Time Schedule The company were using Agile project methodology to breaks down projects into small pieces that are completed in work sessions that run from the design phase to testing and quality assurance. At each sprint, the most priority feature was expected to be completed. Sprints were generally short, running over days or weeks; they're typically two to four weeks long. At the end of each spring, I was expected to complete some features of the website, get it tested, document it, then start planning about the next sprint. Agile Project Methodology made it easier for me as changes can be discussed and features can be newly effected or removed based on feedback. This effectively provides the customer with the finished system they want or need. Issue tracking tools like JIRA that allows bug tracking, and agile project management was also used to keep track of important priority features. If the internal testing team found any bug or any features not working as expected will open an issue in JIRA and assigned it to me. Work culture allowed me to stay focused on delivering iterative and incremental value, as fast as possible with customizable scrum boards. I completed the first version of Push Notification on 13th June. After the competition of the first version, I was assigned to different projects throughout the remainder of my internship. From 25th of June, I started working on Push Notification 2.0 adding other features like add images or convert the notification into a poll. The timeline was given for all the tasks assigned to me and I’ve completed all my projects within the given timeline.
  • 21. Software Engineer Intern 21 Learning and reflections from the project I acquired a better understanding of web development and research through hands-on experience. Leena AI, being a young start-up was an ideal situation for me to showcase my skills and solve a real-world problem that will be actually used by people. From making app for semester projects to solving a real-world problem and deploying it in production, I felt as though I have a strong understanding of the subject on what it would take to peruse a career in software development. Being a developer, I also witnessed the complete lifecycle on how the development process works, how to turn an idea into code and deploy it in production. As a software engineering intern, I was in charge of a number of projects including creating a notification web application to make it easier for HR to schedule a notification for their employees. I was given freedom to execute every project fully from solution architecture to implementation and testing while acting on feedback received from my mentor. Having completed an entire project on my own and shipped it to production gave me immense satisfaction and confidence to work on my ideas and bring them to reality. As a developer, I learned how projects are maintained, integrated and shipped. Working as a developer, completely taking ownership of the project and delivering it on time, made me confident on taking bigger challenges in the future for my capstone project. During this internship, I had the chance to work on many aspects of Software Engineering. I developed new technical knowledge and soft skills while communicating with other developers. I have also discovered a vibrant start-up ecosystem from the inside, this experience has shifted my career plans towards building start-ups and reinforced my interest in expatriation.
  • 22. Software Engineer Intern 22 Conclusion Working as a software engineer intern in a young startup, I felt working in a startup is essential in term of growth, as they place loads of responsibility on their interns. They’ll hire because of skills, but founders expect much more. At Leena AI, I was directly working under the supervision and mentorship of the CTO of the company. Founders and interns work together; there’s no middle management, so you learn from the best. Startups make you work hard, interns work under extreme pressure. Work-life balance is tough and exhaustive hours at the office makes you tired. Having been a part of such work culture help me equipped better to work under extreme pressure and tight deadline. Startups need to grow fast, as a result interns have the license to show off their brilliance and skills to deliver results with fresh designs, implement new concepts and discuss new ideas. Apart from my stipend, other perks which were useful for me as a young aspiring software engineer were a unique growth opportunity, the ability to get the most out of limited resources, ability to learn, diverse responsibilities, added value and appreciation, control over the project, flexibility, interesting and challenging environment. I am extremely satisfied by this internship and I am grateful to Leena AI for providing me with this opportunity.
  • 23. Software Engineer Intern 23 Challenges and Future Enhancements I designed the solution from our side, thinking about database tables and code architecture. I discussed my findings with senior developers whose input often made me rethink my approach. The code architecture was very different from what I had encountered before with a clear separation between the business logic and file structuring. At first, it found it useless but once I wrote code using a proper structure, I quickly understood the advantages of such an architecture and managed to find my way between the file more quickly. The code review helped me a lot by developing a better understanding and giving me another dimension and a new way to solve problems. The code reviewer challenged my implementation decisions and showed me how to comply it to make it better. I began to use best practices so as to reduce the complexity. Before joining Leena AI, I had a very limited knowledge of React, Node.js and reasonable bases in Object Oriented Programming with JavaScript. I went further in those areas, discovered many new tools (Postman, MongoDB Compass, JIRA, Bitbucket and Git), programming languages (TypeScript) as well as architecture like The Twelver-Factor App. For the future enhancement, there are lots of features which can be added to the project. The current feature holds good for the current requirement, but in future, if the requirement change then features can be added or removed from the existing project. I think the application can be made better with features like uploading video files or selecting users by uploading an excel file. Overall, it was a great experience being a part of such an amazing workplace culture and project. The internship certainly made me better software engineer and equipped me better understanding of how to handle a real world projects.
  • 24. Software Engineer Intern 24 Video Presentation https://www.youtube.com/watch?v=0fWSic8Aj8Y&feature=youtu.be