Intern Report 19csr016

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

1

CHAPTER 1

INTRODUCTION

1.1 ABOUT THE COMPANY

TechVoyager Private Limited, established in December 2021 and headquartered in


Thanjavur, India, is a cutting-edge technology company specializing in virtual reality (VR)
solutions. With a focus on delivering immersive experiences through advanced VR
technologies, TechVoyager is committed to revolutionizing how businesses engage with their
audiences across various industries.

TechVoyager’s mission is to explore and innovate within the uncharted territories of virtual
reality and 3D modeling. The company aims to provide state-of-the-art VR solutions that enhance user
interaction, engagement, and satisfaction. By leveraging the latest technologies, TechVoyager envisions
a future where digital and physical realities seamlessly blend, creating enriched experiences for users
globally.

TechVoyager specializes in creating highly detailed and interactive virtual tours using
Matterport technology. These tours provide an immersive experience that replicates physical spaces in a
digital format, making them ideal for industries such as hospitality, tourism, and real estate.The company
offers extensive 3D modeling services, including the creation of scalable 3D models, sculptures, and
detailed scans of physical locations like monuments and buildings. These models are compatible with
major 3D printers, enhancing the versatility and application of the digital replicas.TechVoyager excels in
360-degree videography and photography, producing panoramic images and videos that digitally
recreate real-world environments. These solutions are enriched with multimedia elements like audio,
music, narrations, and galleries to provide comprehensive and engaging experiences.

In addition to VR and 3D solutions, TechVoyager offers web development services, crafting


creative and reliable marketing websites and cloud-based applications tailored to client needs. Their web
solutions ensure robust online presence and functionality.
2

1.2 PROJECT DESCRIPTION:

During internship at TechVoyager, the development of a social media application using


React Native and PostgreSQL. The project aimed to create a robust, user-friendly platform that
facilitates social interaction, content sharing, and community building. Our objectives included
developing a cross-platform mobile application using React Native to ensure compatibility with
both iOS and Android devices, and implementing secure and efficient data management with
PostgreSQL to handle user information, posts, comments, and interactions.

The project involved implementing secure user registration and login systems using
JWT (JSON Web Tokens) for authentication and authorization. I developed customizable user
profiles, allowing users to update their information, profile pictures, and view their activity
history. A dynamic social feed was created to display posts from followed users, with features
for liking, commenting, and sharing content. Additionally, a real-time messaging feature was
built to enable users to send direct messages, supporting text, images, and multimedia
attachments.

To enhance user interaction and responsiveness, a notification system was integrated to


alert users about new messages, likes, comments, and other relevant activities. The backend API
was developed using Node.js and Express to handle requests, manage sessions, and serve data to
the front-end. Socket.io was implemented for real-time communication features, including
instant messaging and live notifications, while Redux was used for state management to
maintain a consistent and predictable state across the application.

This project provided hands-on experience in full-stack mobile development, enhancing


my skills in React Native for front-end and PostgreSQL for back-end operations. I gained a
deeper understanding of real-time application development and state management through the
use of technologies like Socket.io and Redux. Additionally, I developed skills in project
management, planning, coordinating, and executing project tasks, ensuring the timely delivery
and quality of the final product. The experience also improved my ability to work
collaboratively with a team of developers, participating in code reviews, brainstorming sessions,
and agile development processes. This project not only strengthened my technical capabilities
but also provided valuable insights into creating scalable and interactive mobile applications.
3

CHAPTER 2

TESTING

2.1 SOFTWARE TESTING

Software testing is the act of examining the artifacts and the behavior of the software
under test by validation and verification. Software testing can also provide an objective,
independent view of the software to allow the business to appreciate and understand the risks of
software implementation. Test techniques include, but not necessarily limited to:
● Analyzing the product requirements for completeness and correctness in various
contexts like industry perspective, business perspective, feasibility and viability of
implementation, usability, performance, security, infrastructure considerations, etc.
● Reviewing the product architecture and the overall design of the product.
● Working with product developers on improvement in coding techniques, design
patterns, tests that can be written as part of code based on various techniques like boundary
conditions, etc.
● Executing a program or application with the intent of examining behavior.
● Reviewing the deployment infrastructure and associated scripts and automation.
● Take part in production activities by using monitoring and observability techniques.

2.2 MANUAL TESTING


Manual testing is the process of manually testing software for defects. It requires a tester
to play the role of an end user where they use most of the application's features to ensure correct
behavior. To guarantee completeness of testing, the tester often follows a written test plan that
leads them through a set of important test cases.
A key step in the process is testing the software for correct behavior prior to release to
end users. For small scale engineering efforts (including prototypes), ad hoc testing may be
sufficient. With this informal approach, the tester does not follow any rigorous testing procedure
and simply performs testing without planning or documentation. Conversely, exploratory
testing, which involves simultaneous learning, test design and test execution, explores the user
interface of the application using as many of its features as possible, using information gained in
prior tests to intuitively derive additional tests. The success of exploratory manual testing relies
heavily on the domain expertise of the tester, because a lack of knowledge will lead to
4
incompleteness in testing. One of the key advantages of an informal approach is to gain an
intuitive insight to how it feels to use the application.

Large scale engineering projects that rely on manual software testing follow a more
rigorous methodology in order to maximize the number of defects that can be found. A
systematic approach focuses on predetermined test cases and generally involves the following
steps
● Choose a high level test plan where a general methodology is chosen, and resources
such as people, computers, and software licenses are identified and acquired
● Write detailed test cases, identifying clear and concise steps to be taken by the tester,
with expected outcomes.
● Assign the test cases to testers, who manually follow the steps and record the results.
● Author a test report, detailing the findings of the testers. The report is used by
managers to determine whether the software can be released, and if not, it is used by
engineers to identify and correct the problems.
At the beginning of starting my intern, for the first week I have done local setup the
company’s product in my laptop and check whether it is running fine or not. And then I have
worked with the testing team to know the flow of each modules in the company’s product which
takes atleast 3 months and they have asked me to write testcases for each and every module in
the product to understand the flow which is really helpful when I worked with the task. They
also assigned me in manual testing to check the functionalities in the feature that they developed
at that time and asked me to find if any of the existing flow has been broken or not.
5

CHAPTER 3

SYSTEM REQUIREMENTS

3.1 HARDWARE REQUIREMENTS


● Processor : HP Elite Book
● Processor Speed : 2.80 GHz
● SSD : 150 GB
● RAM : 16 GB

3.2 SOFTWARE REQUIREMENTS


● Languages : JavaScript
● Software : Visual Studio Code
● Operating System : Windows

3.3 SOFTWARE DESCRIPTION


3.3.1 Visual Studio Code

Visual Studio Code, also commonly referred to as VS Code,[9] is a source-code editor


made by Microsoft for Windows, Linux and macOS. Features include support for debugging,
syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git.
Users can change the theme, keyboard shortcuts, preferences, and install extensions that add
additional functionality.In the Stack Overflow 2021 Developer Survey, Visual Studio Code was
ranked the most popular developer environment tool, with 70% of 82,000 respondents reporting
that they use it.

Visual Studio Code is a source-code editor that can be used with a variety of
programming languages, including Java, JavaScript, Go, Node.js, Python, C++ and Fortran. It is
based on the Electron framework, which is used to develop Node.js Web applications that run
on the Blink layout engine. Visual Studio Code employs the same editor component used in
Azure DevOps (formerly called Visual Studio Online and Visual Studio Team Services).
6

Visual Studio Code can be extended via extensions, available through a central
repository. This includes additions to the editor and language support. A notable feature is the
ability to create extensions that add support for new languages, themes, and debuggers, perform
static code analysis, and add code linters using the Language Server Protocol.

Source control is a built-in feature of Visual Studio Code. It has a dedicated tab inside of
the menu bar where you can access version control settings and view changes made to the
current project. To use the feature you must link Visual Studio Code to any supported version
control system (Git, Apache Subversion, Perforce, etc.). This allows you to create repositories
as well as to make push and pull requests directly from the Visual Studio Code program.

3.3.1 Android Studio

Android Studio is the official integrated development environment (IDE) for Google's
Android operating system. It provides developers with a comprehensive suite of tools to build,
test, and debug Android applications. Android Studio supports Java, Kotlin, and C++ languages
and offers features like a code editor with smart editing capabilities, a flexible build system
based on Gradle, and a robust emulator to test applications on various Android devices. It also
includes tools for performance profiling, app signing, and APK generation, making it an all-in-
one solution for Android development. Android Studio's rich feature set and deep integration
with the Android ecosystem streamline the development process, allowing developers to create
high-quality, performant Android apps efficiently.
7

CHAPTER 4

TECHNOLOGY STACK

The technology stack that are used in training are as follows:

4.1 LANGUAGES:

i. MySQL

ii. JavaScript

4.1.1 MYSQL:

MySQL is a popular open-source relational database


management system (RDBMS) that is used to manage and store data.
It was first released in 1995 and is now owned by Oracle
Corporation.MySQL supports a range of operating systems including
Windows, Linux, and Mac OS X. It is widely used in web
development, powering popular content management systems (CMS)
such as WordPress and Drupal, as well as e-commerce platforms like
Magento and WooCommerce.

Some key features of MySQL include as follows. MySQL is


easy to install, configure and use. It also provides a range of graphical
user interfaces (GUIs) to help manage the database.MySQL can
handle large amounts of data and support thousands of concurrent
users.MySQL is designed to be fast and efficient, with optimized
query execution and caching mechanisms.MySQL provides a range of
security features including encryption, authentication, and access
control.MySQL is compatible with a wide range of programming
languages including PHP, Java, Python, and C++. It also supports
standard SQL commands.Overall, MySQL is a robust and reliable
RDBMS that is widely used in web development and other
applications that require data management and storage.

4.1.2 JavaScript:

JavaScript is a dynamic, high-level programming language that


8

has become one of the most widely used languages in web


development. Originally created by Brendan Eich in 1995, JavaScript
has evolved significantly and is now a cornerstone technology of the
web, alongside HTML and CSS. Its versatility, ease of use, and
powerful features have made it indispensable for creating interactive
and dynamic web applications.

One of the key strengths of JavaScript is its ability to run in the


browser, enabling developers to create rich user interfaces and
enhance user experiences without needing to reload the page. This
client-side execution is what allows for the development of interactive
features like form validation, dynamic content updates, and
animations. JavaScript's event-driven nature allows it to handle user
interactions efficiently, making web applications more responsive and
engaging.

JavaScript is not limited to client-side development. With the


advent of Node.js, JavaScript can also be used for server-side
programming. Node.js is a runtime environment that allows JavaScript
to run on the server, enabling developers to use a single language for
both client-side and server-side development. This unification
simplifies the development process, as developers can leverage their
JavaScript skills across the entire stack. Node.js is known for its non-
blocking, event-driven architecture, which makes it highly efficient
and suitable for building scalable network applications.

The language supports multiple programming paradigms,


including procedural, object-oriented, and functional programming.
This flexibility allows developers to choose the best approach for their
specific needs. JavaScript's object-oriented capabilities are enhanced
by prototypes, which provide a way to share properties and methods
among objects. Its functional programming features, such as first-class
functions, closures, and higher-order functions, enable developers to
write clean, modular, and reusable code. It can be executed on the
client-side in web browsers and on the server-side using environments
like Node.js. JavaScript's extensive ecosystem includes a wide range
of libraries and frameworks, such as React, Angular, and Vue.js,
9

which simplify the development of complex web applications. Its


asynchronous capabilities, made possible by promises and async/await
syntax, allow for efficient handling of tasks like API calls and user
interactions.

4.2 FRAMEWORK:
4.2.1 React Native:

React Native is an open-source framework developed by


Facebook for building mobile applications using JavaScript and React.
Unlike traditional mobile development frameworks that require
separate codebases for iOS and Android, React Native allows
developers to write a single codebase that runs on both platforms. This
is achieved through a combination of JavaScript and native
components, which translates into a smoother development process
and reduced costs. React Native leverages React's component-based
architecture, enabling developers to create reusable components that
enhance app performance and maintainability. Additionally, React
Native supports hot reloading, allowing developers to see changes in
real-time without restarting the app, which speeds up the development
cycle.

Together, Android Studio, React Native, and JavaScript offer


developers robust and versatile tools for building a wide range of
applications. Android Studio is ideal for dedicated Android
development, providing powerful tools tailored specifically for the
Android platform. React Native bridges the gap between iOS and
Android, allowing for efficient cross-platform development with a
shared codebase. JavaScript serves as the foundation for web
development and extends into mobile development through
frameworks like React Native, showcasing its versatility and
importance in the modern development landscape.

4.3 DEVOPS TECHNOLOGIES:

4.3.1 Gitlab:

GitLab Inc. is an open-core company that


operates GitLab, a DevOps software package
which can develop, secure, and operate
10

software.The open source software project was


created by Ukrainian developer Dmytro
Zaporozhets and Dutch developer Sytse
Sijbrandij.In 2018, GitLab Inc. was considered
the first partly-Ukrainian unicorn.
Since its foundation, GitLab Inc.
promoted remote work,and is known to be
among the largest all-remote companies in the
world.GitLab has an estimated 30 million
registered users, with 1 million being active
licensed users.

The GitLab application uses PostgreSQL


for persistent database information (for example,
users, permissions, issues, or other metadata).
GitLab stores the bare Git repositories in the
location defined in the configuration file,
repositories: section. It also keeps default branch
and hook information with the bare repository.
11

Fig 4.3 GitLab Architecture


12

CHAPTER 5

CONCLUSION

I had a great interesting internship experience at TechVoyager where I learned a lot and got a
better knowledge of what a professional should look like and how they approach and solve
challenges. They are keeping a positive atmosphere and giving their employees the flexibility to
work from wherever. They take good care of them and treat them nicely. One of the best
qualities that led me to choose to work there is this. At work, I encounter a variety of
circumstances that assist me develop my career. I made a lot of contacts with the employees
there and learned a lot from them, both of which were very beneficial to my career.
13

CHAPTER 6
APPENDICES

6.1 INTERNSHIP LETTER

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy