SlideShare a Scribd company logo
1 of 25
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

More Related Content

What's hot

Internship on web development
Internship on web developmentInternship on web development
Internship on web developmentRajendra Kandel
 
Internship Presentation 1 Web Developer
Internship Presentation 1 Web DeveloperInternship Presentation 1 Web Developer
Internship Presentation 1 Web DeveloperHemant Sarthak
 
computer science internship report
computer science  internship reportcomputer science  internship report
computer science internship reportkaahwa Armstrong
 
Internship report-csit-isp_networking
 Internship report-csit-isp_networking Internship report-csit-isp_networking
Internship report-csit-isp_networkingsagarAcharya35
 
Mobile/Web App Development Project Report
Mobile/Web App Development Project ReportMobile/Web App Development Project Report
Mobile/Web App Development Project ReportAbubakr Cheema
 
Internship final presentation
Internship final presentationInternship final presentation
Internship final presentationMeme Whisper
 
BSC CSIT Final Year Internship PPT Presentation on SEO
BSC CSIT Final Year Internship PPT Presentation on SEOBSC CSIT Final Year Internship PPT Presentation on SEO
BSC CSIT Final Year Internship PPT Presentation on SEOSirish Paudel
 
Final Year Project Report
Final Year Project ReportFinal Year Project Report
Final Year Project ReportChongKit liew
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training reportReshmi R
 
Computer science and information technology
Computer science and information technology Computer science and information technology
Computer science and information technology Vivek Kumar Sinha
 
Summer Internship (Presentation)
Summer Internship (Presentation)Summer Internship (Presentation)
Summer Internship (Presentation)Paras Garg
 
Internship Report Presentation
Internship Report Presentation Internship Report Presentation
Internship Report Presentation Devanil Choudhury
 
VTU final year project report
VTU final year project reportVTU final year project report
VTU final year project reportathiathi3
 

What's hot (20)

Internship on web development
Internship on web developmentInternship on web development
Internship on web development
 
Software Engineering Internship
Software Engineering InternshipSoftware Engineering Internship
Software Engineering Internship
 
internship Presentation
internship Presentationinternship Presentation
internship Presentation
 
Internship Presentation 1 Web Developer
Internship Presentation 1 Web DeveloperInternship Presentation 1 Web Developer
Internship Presentation 1 Web Developer
 
computer science internship report
computer science  internship reportcomputer science  internship report
computer science internship report
 
Project Report
Project ReportProject Report
Project Report
 
Internship report-csit-isp_networking
 Internship report-csit-isp_networking Internship report-csit-isp_networking
Internship report-csit-isp_networking
 
Mobile/Web App Development Project Report
Mobile/Web App Development Project ReportMobile/Web App Development Project Report
Mobile/Web App Development Project Report
 
Internship final presentation
Internship final presentationInternship final presentation
Internship final presentation
 
BSC CSIT Final Year Internship PPT Presentation on SEO
BSC CSIT Final Year Internship PPT Presentation on SEOBSC CSIT Final Year Internship PPT Presentation on SEO
BSC CSIT Final Year Internship PPT Presentation on SEO
 
Final Year Project Report
Final Year Project ReportFinal Year Project Report
Final Year Project Report
 
internship report.pdf
internship report.pdfinternship report.pdf
internship report.pdf
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training report
 
report on internship
report on internshipreport on internship
report on internship
 
Internship report on flutter lawyer app
Internship report  on flutter lawyer appInternship report  on flutter lawyer app
Internship report on flutter lawyer app
 
Computer science and information technology
Computer science and information technology Computer science and information technology
Computer science and information technology
 
Summer Internship (Presentation)
Summer Internship (Presentation)Summer Internship (Presentation)
Summer Internship (Presentation)
 
Mini Project PPT
Mini Project PPTMini Project PPT
Mini Project PPT
 
Internship Report Presentation
Internship Report Presentation Internship Report Presentation
Internship Report Presentation
 
VTU final year project report
VTU final year project reportVTU final year project report
VTU final year project report
 

Similar to Computer Science Internship Report Leena AI

Consultant/Manager with 15+ Years of experience in IT industry handling multi...
Consultant/Manager with 15+ Years of experience in IT industry handling multi...Consultant/Manager with 15+ Years of experience in IT industry handling multi...
Consultant/Manager with 15+ Years of experience in IT industry handling multi...Mahesh Jothi
 
Mahesh_J_Resume.docx
Mahesh_J_Resume.docxMahesh_J_Resume.docx
Mahesh_J_Resume.docxMahesh Jothi
 
Information architecture for websites and intranets
Information architecture for websites and intranetsInformation architecture for websites and intranets
Information architecture for websites and intranetsContent Formula
 
DevOps Model: What is DevOps and Its Benefits
DevOps Model: What is DevOps and Its BenefitsDevOps Model: What is DevOps and Its Benefits
DevOps Model: What is DevOps and Its BenefitsDashTechnologiesInc
 
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.
Web deveopment using React js and Node js with SQL.Jayant Surana
 
4 Ways Artificial Intelligence Improves Software Development
4 Ways Artificial Intelligence Improves Software Development4 Ways Artificial Intelligence Improves Software Development
4 Ways Artificial Intelligence Improves Software DevelopmentWeblineIndia
 
Internship Presentation 1.pptx
Internship Presentation 1.pptxInternship Presentation 1.pptx
Internship Presentation 1.pptxRahulGupta257719
 
“Mentors View” Application
“Mentors View” Application“Mentors View” Application
“Mentors View” ApplicationAI Publications
 
Harish software engineer (rpa) 4+ yrs exp
Harish software engineer (rpa) 4+ yrs expHarish software engineer (rpa) 4+ yrs exp
Harish software engineer (rpa) 4+ yrs expHarish M
 
Student Answer and Work Form Unit 3 Ver. CStudent Name ________.docx
Student Answer and Work Form Unit 3 Ver. CStudent Name ________.docxStudent Answer and Work Form Unit 3 Ver. CStudent Name ________.docx
Student Answer and Work Form Unit 3 Ver. CStudent Name ________.docxjohniemcm5zt
 
INT303 Beyond The Intranet Digital Workplace Apps, Solutions n Bots #365EDUCon
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 #365EDUConKanwal Khipple
 
Cover Letter
Cover LetterCover Letter
Cover LetterAlex Pal
 

Similar to Computer Science Internship Report Leena AI (20)

Consultant/Manager with 15+ Years of experience in IT industry handling multi...
Consultant/Manager with 15+ Years of experience in IT industry handling multi...Consultant/Manager with 15+ Years of experience in IT industry handling multi...
Consultant/Manager with 15+ Years of experience in IT industry handling multi...
 
Mahesh_J_Resume.docx
Mahesh_J_Resume.docxMahesh_J_Resume.docx
Mahesh_J_Resume.docx
 
Information architecture for websites and intranets
Information architecture for websites and intranetsInformation architecture for websites and intranets
Information architecture for websites and intranets
 
projectreport.pdf
projectreport.pdfprojectreport.pdf
projectreport.pdf
 
DevOps Model: What is DevOps and Its Benefits
DevOps Model: What is DevOps and Its BenefitsDevOps Model: What is DevOps and Its Benefits
DevOps Model: What is DevOps and Its Benefits
 
Resume
ResumeResume
Resume
 
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.
Web deveopment using React js and Node js with SQL.
 
Deep_Kamal
Deep_KamalDeep_Kamal
Deep_Kamal
 
4 Ways Artificial Intelligence Improves Software Development
4 Ways Artificial Intelligence Improves Software Development4 Ways Artificial Intelligence Improves Software Development
4 Ways Artificial Intelligence Improves Software Development
 
Internship Presentation 1.pptx
Internship Presentation 1.pptxInternship Presentation 1.pptx
Internship Presentation 1.pptx
 
Sachin CV
Sachin CVSachin CV
Sachin CV
 
Vijayabaskar-Resume
Vijayabaskar-ResumeVijayabaskar-Resume
Vijayabaskar-Resume
 
“Mentors View” Application
“Mentors View” Application“Mentors View” Application
“Mentors View” Application
 
Harish software engineer (rpa) 4+ yrs exp
Harish software engineer (rpa) 4+ yrs expHarish software engineer (rpa) 4+ yrs exp
Harish software engineer (rpa) 4+ yrs exp
 
Student Answer and Work Form Unit 3 Ver. CStudent Name ________.docx
Student Answer and Work Form Unit 3 Ver. CStudent Name ________.docxStudent Answer and Work Form Unit 3 Ver. CStudent Name ________.docx
Student Answer and Work Form Unit 3 Ver. CStudent Name ________.docx
 
Himal_Cv
Himal_CvHimal_Cv
Himal_Cv
 
INT303 Beyond The Intranet Digital Workplace Apps, Solutions n Bots #365EDUCon
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
 
Resume
ResumeResume
Resume
 
CURRICULUM VITAE
CURRICULUM VITAECURRICULUM VITAE
CURRICULUM VITAE
 
Cover Letter
Cover LetterCover Letter
Cover Letter
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual serviceanilsa9823
 
Dark Dubai Call Girls O525547819 Skin Call Girls Dubai
Dark Dubai Call Girls O525547819 Skin Call Girls DubaiDark Dubai Call Girls O525547819 Skin Call Girls Dubai
Dark Dubai Call Girls O525547819 Skin Call Girls Dubaikojalkojal131
 
Dubai Call Girls Starlet O525547819 Call Girls Dubai Showen Dating
Dubai Call Girls Starlet O525547819 Call Girls Dubai Showen DatingDubai Call Girls Starlet O525547819 Call Girls Dubai Showen Dating
Dubai Call Girls Starlet O525547819 Call Girls Dubai Showen Datingkojalkojal131
 
WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)Delhi Call girls
 
Vip Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...
Vip  Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...Vip  Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...
Vip Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...shivangimorya083
 
Escorts Service Cambridge Layout ☎ 7737669865☎ Book Your One night Stand (Ba...
Escorts Service Cambridge Layout  ☎ 7737669865☎ Book Your One night Stand (Ba...Escorts Service Cambridge Layout  ☎ 7737669865☎ Book Your One night Stand (Ba...
Escorts Service Cambridge Layout ☎ 7737669865☎ Book Your One night Stand (Ba...amitlee9823
 
Call Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
CALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual serviceanilsa9823
 
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big BoodyDubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boodykojalkojal131
 
CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service 🧳
CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service  🧳CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service  🧳
CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service 🧳anilsa9823
 
Motilal Oswal Gift City Fund PPT - Apr 2024.pptx
Motilal Oswal Gift City Fund PPT - Apr 2024.pptxMotilal Oswal Gift City Fund PPT - Apr 2024.pptx
Motilal Oswal Gift City Fund PPT - Apr 2024.pptxMaulikVasani1
 
Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...
Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...
Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...Pooja Nehwal
 
Resumes, Cover Letters, and Applying Online
Resumes, Cover Letters, and Applying OnlineResumes, Cover Letters, and Applying Online
Resumes, Cover Letters, and Applying OnlineBruce Bennett
 
Internship Report].pdf iiwmoosmsosmshkssmk
Internship Report].pdf iiwmoosmsosmshkssmkInternship Report].pdf iiwmoosmsosmshkssmk
Internship Report].pdf iiwmoosmsosmshkssmkSujalTamhane
 
Bur Dubai Call Girl Service #$# O56521286O Call Girls In Bur Dubai
Bur Dubai Call Girl Service #$# O56521286O Call Girls In Bur DubaiBur Dubai Call Girl Service #$# O56521286O Call Girls In Bur Dubai
Bur Dubai Call Girl Service #$# O56521286O Call Girls In Bur Dubaiparisharma5056
 
Top Rated Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...
Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...
Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...ranjana rawat
 
Booking open Available Pune Call Girls Ambegaon Khurd 6297143586 Call Hot In...
Booking open Available Pune Call Girls Ambegaon Khurd  6297143586 Call Hot In...Booking open Available Pune Call Girls Ambegaon Khurd  6297143586 Call Hot In...
Booking open Available Pune Call Girls Ambegaon Khurd 6297143586 Call Hot In...Call Girls in Nagpur High Profile
 
Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...
Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...
Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...sonalitrivedi431
 

Recently uploaded (20)

CALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Gosainganj Lucknow best sexual service
 
Dark Dubai Call Girls O525547819 Skin Call Girls Dubai
Dark Dubai Call Girls O525547819 Skin Call Girls DubaiDark Dubai Call Girls O525547819 Skin Call Girls Dubai
Dark Dubai Call Girls O525547819 Skin Call Girls Dubai
 
Dubai Call Girls Starlet O525547819 Call Girls Dubai Showen Dating
Dubai Call Girls Starlet O525547819 Call Girls Dubai Showen DatingDubai Call Girls Starlet O525547819 Call Girls Dubai Showen Dating
Dubai Call Girls Starlet O525547819 Call Girls Dubai Showen Dating
 
WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Salarpur Sector 81 ( Noida)
 
Vip Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...
Vip  Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...Vip  Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...
Vip Modals Call Girls (Delhi) Rohini 9711199171✔️ Full night Service for one...
 
Escorts Service Cambridge Layout ☎ 7737669865☎ Book Your One night Stand (Ba...
Escorts Service Cambridge Layout  ☎ 7737669865☎ Book Your One night Stand (Ba...Escorts Service Cambridge Layout  ☎ 7737669865☎ Book Your One night Stand (Ba...
Escorts Service Cambridge Layout ☎ 7737669865☎ Book Your One night Stand (Ba...
 
Call Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Bidadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
CALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Nishatganj Lucknow best sexual service
 
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big BoodyDubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
Dubai Call Girls Demons O525547819 Call Girls IN DUbai Natural Big Boody
 
CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service 🧳
CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service  🧳CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service  🧳
CALL ON ➥8923113531 🔝Call Girls Husainganj Lucknow best Female service 🧳
 
Motilal Oswal Gift City Fund PPT - Apr 2024.pptx
Motilal Oswal Gift City Fund PPT - Apr 2024.pptxMotilal Oswal Gift City Fund PPT - Apr 2024.pptx
Motilal Oswal Gift City Fund PPT - Apr 2024.pptx
 
Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...
Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...
Dombivli Call Girls, 9892124323, Kharghar Call Girls, chembur Call Girls, Vas...
 
Resumes, Cover Letters, and Applying Online
Resumes, Cover Letters, and Applying OnlineResumes, Cover Letters, and Applying Online
Resumes, Cover Letters, and Applying Online
 
Internship Report].pdf iiwmoosmsosmshkssmk
Internship Report].pdf iiwmoosmsosmshkssmkInternship Report].pdf iiwmoosmsosmshkssmk
Internship Report].pdf iiwmoosmsosmshkssmk
 
Bur Dubai Call Girl Service #$# O56521286O Call Girls In Bur Dubai
Bur Dubai Call Girl Service #$# O56521286O Call Girls In Bur DubaiBur Dubai Call Girl Service #$# O56521286O Call Girls In Bur Dubai
Bur Dubai Call Girl Service #$# O56521286O Call Girls In Bur Dubai
 
Top Rated Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Warje ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls South Ex 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...
Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...
Book Paid Saswad Call Girls Pune 8250192130Low Budget Full Independent High P...
 
Booking open Available Pune Call Girls Ambegaon Khurd 6297143586 Call Hot In...
Booking open Available Pune Call Girls Ambegaon Khurd  6297143586 Call Hot In...Booking open Available Pune Call Girls Ambegaon Khurd  6297143586 Call Hot In...
Booking open Available Pune Call Girls Ambegaon Khurd 6297143586 Call Hot In...
 
Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...
Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...
Hyderabad 💫✅💃 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATIS...
 

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