• Facebook
  • LinkedIn

CODE

Concise Overview of Development in Enterprises

By:

Last Updated:

Monday, August 16, 2021

INTERNSHIP INFORMATION


Roles and Responsibilities


My responsibilities as a developer intern was to write a well designed, testable, efficient code by using best software development practices. As an intern I had to create a website layout/user interface by using standard practices on Wix using Corvid and to integrate data from various back-end services and databases.

I had to gather and refine specifications and requirements based on technical needs and also to create and maintain software documentation.

I was responsible for maintaining, expanding, and scaling the site.

The biggest responsibilities as a development intern was to  stay plugged into emerging technologies/industry trends and apply them into operations and activities.


Work Structure


The internship mode was Work From Home and totally virtual. There  were flexible working hours.  All the assigned work and projects were done according to the planned timetable.


Time Frame


The duration of internship was 3 months starting from 17-Oct-2020 to 17-Nov-2020. There were 5 total working days in a week and  6-6:30  hours of working per day.

There were two types of working timings:

  • India Timings

  • UAE Timings

I had selected the India timings for which I had to work on weekends and on three weekdays namely Tuesday, Wednesday and Thursday.

For the weekdays the working timing was from 7:00 pm to 11:00 pm + any 2 hours in a day and for the weekends it was from 12:00pm to 6:00pm.


DESCRIPTION OF INTERNSHIP REPORT


Tools  Used

1. WIX


Platform : Cloud-based web development services


Description : It allows users to create HTML5 websites and mobile sites through the use of online drag and drop tools. It  provides customizable website templates and a drag-and-drop HTML5 website builder that includes apps, graphics, image galleries, fonts, vectors, animations and other options.their web sites from scratch.


Features :

  • E-commerce automation

  • Templates

  • App Market

  • Customer Communication

  • Animations

  • Intuitive designing and editing

  • Simple navigation

  • Multiple sites


2.  Corvid


Platform : Open development platform


Description  :

Corvid’s APIs are used to add custom functionality and interactions in Wix's visual builder.

Corvid removes multiple obstacles from web development and lets developers focus on code in both the front-end and backend and the functionality of the applications on the WIX platform.


Features :

  • Powerful Coding tools

  • Databases

  • Open Platform

  • Built-in IDE

  • Release candidates

  • Site Monitoring

  • Secrets Manager

  • Local Development


3. RStudio


Platform : Free and open-source IDE for R


Description :

It includes a console, syntax-highlighting editor that supports direct code execution, as well as tools for plotting, history, debugging and workspace management.

 

Features :

  • integrates the tools used with R into a single environment

  • supports interactive graphics with Shiny and ggvis.


4. Anaconda Platform


Platform : Free and open-source data-science platform


Description :

Anaconda is a free and open-source distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS. It has an open-source package management system called Conda, which makes it easy to install or update packages and create or load environments. It has machine learning libraries like TensorFlow, Scikit-learn and Theano, data science libraries like pandas, NumPy and Dask. It also has visualization libraries like Bokeh, Datashader, matplotlib and Holoviews.

Anaconda has Jupyter Notebook, a shareable notebook that combines live code, visualizations and text.


Features :

  • Analytics Workflows

  • Analytics interaction

  • Data Engineering

  • High Performance Scale Up

  • Reproducibility


5. Google Sheets


Platform : Online spreadsheet app


Description :

It lets users create and format spreadsheets and simultaneously work with other people. The features that make Google Sheets so successful are available through the Sheets API. With the API, the code can be accessed and can update spreadsheets.


Features :

  • Import, export and format data

  • Control conditional formatting

  • Build and edit charts

  • Configure data validation

  • Create and update named and protected ranges

  • Add and adjust filtered views

  • Create and manipulate pivot tables.



Development


Development involves the tools, methodologies and processes necessary to create software, it also concerns the code and algorithms that physicists, device fabricators, service scientists and hardware makers need to write in the course of doing their work. That is, development also involves the activities of skilled individuals who develop project-specific software code even though they themselves are not primarily software developers.



Software Development


Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software. The process to develop software includes identifying a need, designing the program, and testing it for issues.

Software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable. There are three basic types:


  1. System software to provide core functions such as operating systems, disk management, utilities, hardware management and other operational necessities.

  2. Programming software to give programmers tools such as text editors, compilers, linkers, debuggers and other tools to create code.

  3. Application software (applications or apps) to help users perform tasks. Office productivity suites, data management software, media players and security programs are examples. Applications also refers to web and mobile applications.

  4. Embedded systems software is used to control machines and devices not typically considered computers — telecommunications networks, cars, industrial robots and more. These devices, and their software, can be connected as part of the Internet of Things (IoT).


Software development is primarily conducted by programmers, software engineers and software developers. These roles interact and overlap, and the dynamics between them vary greatly across development departments and communities.


  1. Programmers, or coders, write source code to program computers for specific tasks like merging databases, processing online orders, routing communications, conducting searches or displaying text and graphics. Programmers typically interpret instructions from software developers and engineers and use programming languages like C++ or Java to carry them out.

  2. Software engineers apply engineering principles to build software and systems to solve problems. They use modeling language and other tools to devise solutions that can often be applied to problems in a general way, as opposed to merely solving for a specific instance or client. Software engineering solutions adhere to the scientific method and must work in the real world, as with bridges or elevators.

  3. Software developers have a less formal role than engineers and can be closely involved with specific project areas — including writing code. At the same time, they drive the overall software development lifecycle including working across functional teams to transform requirements into features, managing development teams and processes, and conducting software testing and maintenance.


Types of Software Development


The different types of software development are:


  • Web Development:

Web development refers to building websites and deploying on the web. Web development requires use of scripting languages both at the server end as well as at client end.

Web development today is exploding due to the new web technologies and Application Programming Interfaces (APIs) which let websites “plug in” to other useful features. The Web can deliver ‘apps’ that feel native, because browsers now are so much more than a URL bar and an Ad-blocker these days.

For Web Development HTML, Javascript, Django, C/C++, ASP.NET, PHP, Python, Ruby, Rails etc languages are used .


  • Data Science:

Data Science is a blend of various tools, algorithms, and machine learning principles with the goal to discover hidden patterns from the raw data.

Data Science is primarily used to make decisions and predictions making use of predictive causal analytics, prescriptive analytics (predictive plus decision science) and machine learning. Data science is related to data mining, machine learning and big data.

The tools used are R, Hadoop, BigML, Python, SQL Analysis services.


  • Application Development:

Application development is the process of gathering business requirements, designing, prototyping, coding, testing and ongoing improvements and debugging of software that can assist the daily functionalities of the user or business..  Application development defines the process of how the application is made.

These are standard applications that perform their duties on traditional desktop operating systems, such as Windows, Mac, or Linux. It’s often considered a programme, executed on demand by the user, that opens its interface in the confines of the OS that it’s running in.

The tools used are: Java, C/C++,C#, Python.



  • Back-end Development:

Back-end development is the work that goes on behind the scenes to make the front-end work properly.

The back-end, or “server side”, of a website or application is where the data is stored and it usually consists of three parts: a server, an application, and a database.

It compasses writing APIs, creating libraries, or working with components of systems that don’t have user interfaces or even systems of scientific programming.

Tools used are: Python, Java, C/C++, SQL, Ruby, MongoDB, Oracle.


  • Cloud Computing:

Cloud computing is used to plug into infrastructure via the internet, and use computing resources without installing and maintaining them on-premises.

It includes some form of virtualized IT infrastructure such as servers, operating system software, networking, and other infrastructure that’s abstracted, using special software, so that it can be pooled and divided irrespective of physical hardware boundaries and hosted at a remote data center managed by a cloud services provider (or CSP).


Application of Cloud Computing:


  • Storage:  Cloud Computing helps to store data at a secure location and access it from any device easily. It has brought so much ease of accessibility and also keeps data secure away from hacker’s reach as cracking into cloud locations is comparatively more complex than hacking a system.


  • Virtual Reality: Virtual Reality is possible because cloud storage made it possible to access data from any location or device, without worrying about the underlying hardware.


  • Testing and Deployment: Cloud Computing provides organizations a flexible environment for accessing data which allows the testing and development phase to operate smoothly.


  • Data Backup:  Cloud Computing gives leverage to secure a backup of data. With the help of cloud computing technology, one can secure virtual space which can be  used for storing pictures, audio files, videos, documents or any sort of data. Cloud computing not just offers location to store data but also keeps it immune from any potential threats.


Evolving Software Development


New technologies, development methods and customer preferences are the  key indicators regarding where to focus the development skills. Staying on top of new technology trends is a great way to future-proof the software development skills, ensuring the abilities don’t age.

Some of the today’s most popular software development trends are:


  • Artificial Intelligence:


AI is one of the fascinating and universal fields of Computer science which has a great scope in future. AI holds a tendency to cause a machine to work as a human.

It is a branch of computer science in which we can create intelligent machines with programmed algorithms which can work with its own intelligence, which can behave like humans, think like humans, and be able to make decisions.


Goals of Artificial Intelligence:


  • To Create Expert Systems which exhibit intelligent behavior, learn, demonstrate, explain, and advise its users.

  • To Implement Human Intelligence in Machines that understand, think, learn, and behave like humans.


  • Blockchain:

 A blockchain is a time-stamped series of immutable records of data that is managed by a cluster of computers not owned by any single entity. Each of these blocks of data (i.e. block) is secured and bound to each other using cryptographic principles (i.e. chain). The blockchain network has no central authority. The information in it is open for anyone and everyone to see. Hence, anything that is built on the blockchain is by its very nature transparent and everyone involved is accountable for their actions.


Applications of Blockchain:


  • Bitcoin

  • IoT

  • Banking

  • Healthcare

  • Payments and Transfers

  • Law Enforcement

  • Voting

  • Digital ID’s



  • Internet of Things (IoT):


The Internet of Things is a network of physical objects that use sensors and APIs to connect and exchange data over the Internet. The Internet of Things includes a wide variety of “smart” devices, from industrial machines that transmit data about the production process to sensors that track information about the human body.

The IoT depends on a whole host of technologies – such as application programming interfaces (APIs) that connect devices to the Internet. Other key IoT technologies are Big Data management tools, predictive analytics, AI and machine learning, the cloud, and radio-frequency identification (RFID).


Applications of IoT:


The ability of IoT to provide sensor information as well as enable device-to-device communication is driving a broad set of applications. The following are some of the most popular applications and what they do:

  • Create new efficiencies in manufacturing through machine monitoring and product-quality monitoring.

  • Improve the tracking and “ring-fencing” of physical assets.

  • Use wearables to monitor human health analytics and environmental conditions.

  • Drive efficiencies and new possibilities in existing processes.

  • Enable business process changes.


  • Cybersecurity:


Cybersecurity is the practice of protecting systems, networks, and programs from digital attacks.

A successful cybersecurity approach has multiple layers of protection spread across the computers, networks, programs, or data that one intends to keep safe. In an organization, the people, processes, and technology must all complement one another to create an effective defense from cyber attacks.


Why is cybersecurity important?


In today’s connected world, everyone benefits from advanced cyberdefense programs. At an individual level, a cybersecurity attack can result in everything from identity theft, to extortion attempts, to the loss of important data like family photos. Everyone relies on critical infrastructure like power plants, hospitals, and financial service companies. Securing these and other organizations is essential to keeping our society functioning.


  • Progressive Web Apps:


Progressive Web Apps are traditional web applications that are enhanced with modern web technologies, allowing them to provide a more app-like experience. The “progressive” part means they’re “progressively enhanced” with modern web features, which means they’ll also work in older browsers that don’t support the new features, but will work better and with more features in modern browsers.

Progressive web apps are the tech industry’s latest attempt to improve cross-platform performance across web and mobile.


Benefits of Progressive Web Apps:


  • Connectivity Independence: Progressive web applications can work both offline and on low-quality networks.

  • Full responsiveness and browser compatibility: Progressive web apps are built according to progressive enhancement principles. So, it works with all browsers and is compatible with any device, regardless of screen size and other specifications.

  • App-like interface: Progressive web apps mimic navigation and interactions of native apps.

  • Self-updates:  Able to update themselves automatically, apps stay fresh.

  • Safety: These apps are served through HTTPS, so unauthorized users can’t access their content.

  • Discoverability and easy installation: Progressive web apps are not distributed via app stores. These apps can be shared through a URL instead so they’re easily found. The installation is simple and entails visiting a site and adding it to a device home screen.



  • Low-code Development:


A low-code development platform is a software that provides a development environment used to create application software through graphical user interfaces and configuration instead of traditional hand-coded computer programming. Low-code development platforms provide graphical tools for designing an application or system, along with its required inputs, outputs, business logic, and other aspects.


Benefits of Low-Code Development:


  • Improve developer productivity with low-code attributes, such as a development toolkit (based on developer experience), a visual user interface, reusable components, and more.

  • Build maintainable solutions that are easy to scale on cloud-native architecture.

  • Deliver continuous improvements to end-users with engaging web, mobile, conversational, or immersive experiences.

  • Develop a variety of solutions ranging from process automation apps to mission-critical systems modernization, without incurring heavy costs.

  • Stay agile to respond quickly to changing business and customer needs



The Development and Design process of Software


Development and Design is one of the important stages of the software building process. Following are the processes evolved in the software development and designing.


  • Defining and Understanding the problem: Understanding the requirements, constraints, purposes and target audience.


  • Planning and Designing the solution:  A conceptual model, wireframe, layout and structures of the software system is created. The project is broken into modules or subcomponents.


  • Implementing and Developing the solution: This step is also known as the programming phase. The implementation of software design starts in terms of writing program code in the suitable programming language and developing error-free executable programs efficiently.


  • Testing and Evaluating the solution: Evaluation of  the performance of software, debugging of  the system and validating basic functions are done in testing and evaluating process.


  • Deploying: It involves the verification of input/output parameters. Debugging is a static process where inputs are supplied, the system is run, and the outputs are compared against the expected results.


  • Maintenance: It is the process of correcting mistakes, adding new features, optimizing for execution speed or program size, porting to new computers or operating systems, and reconfiguring the system to solve a similar problem.


The whole process follows a cycle called Software Development Life Cycle.



Softwares used in different Sectors


Different softwares are available to fulfill the requirement of different working sectors which increase their workflow and provide a better solution to individuals, institutions  and organisations.


Development Softwares

  • Flutter


 Platform : Mobile Application Development Software


  It is Google’s UI toolkit that enables to create        applications for mobile, web, and desktop from a single   codebase. 

          

  • Felgo


 Platform : Mobile Application  Development Software


It supports apps for various platforms, including iOS, Android, desktop (Windows and Linux), and counting. Using a single codebase, an application for different operating systems can be created.


  • Wordpress


 Platform : Open-source content management system software


Software for creating blogs and websites


  • Adobe Dreamweaver

 

Platform : Web Development Software


Quickly create and publish web pages with web design software that supports HTML, CSS, JavaScript, and more. 


  • Codepen


 Platform : Web Development environment


It  builds, tests, and discovers front-end code  and debug. It's a friendly development environment for front-end designers.


  • Google Developers

 

Platform : Software Development tools and platforms.


It contains documentation on using Google developer tools and APIs, including discussion groups and blogs for developers using Google's developer products.


  • AWS Developer Center


 Platform : Software Development Kit and Tools


The AWS Developer Center is the homepage of Aws developer community. The AWS Developer Tools are designed to build software like Amazon. They facilitate practices such as continuous delivery and infrastructure as code for serverless, containers, and Amazon EC2.


  • Microsoft Azure


 Platform : Cloud Computing Services


It helps to build, debug and manage cloud applications using any platforms and languages using a range of SDKs. It has full-featured IDEs and editors with advanced debugging capabilities for development.


  • NetBeans


 Platform : Software Development Tool


It develops web, mobile, and desktop

applications using  C / C++, PHP, JavaScript, Java etc.




Designing Softwares


  • Sketch


Platform : Interface Design Tool


It has an uncluttered and intuitive interface that makes it easy to create beautiful designs quickly. It has a comprehensive ecosystem of plugins and integrations that bring added power and make it simple to integrate.



  • Adobe Photoshop


Platform : Graphic Design Software


It is a platform for designing creative projects, photo editing and compositing to digital painting, animation, and graphic design.


  • Canva


Platform : Graphic Design Software


It is a tool for creating graphics for social media posts, flyers, or business cards.


  • Adobe Illustrator


Platform : Graphic Design Software


Illustrator is for making logos, sketches, typography, icons and complex illustrations for videos.


  • Inkscape

Platform : Graphic Design Software


It is a tool for vector and graphics designing, sketching and making illustrations.


  • CorelDraw


Platform : Graphic Design Software


It is a vector graphics editor.


Marketing Softwares


  • Google Marketing Platform


It is a unified advertising and analytics platform that enables stronger collaboration for marketing teams by building on existing integrations between DoubleClick and the Google Analytics 360 Suite.


  • Adobe Marketing Cloud


Adobe Marketing Cloud,includes Marketo Engagement Platform, which allows to manage, personalize, optimize, and orchestrate cross-channel campaigns across B2B and B2C use cases.


  • Pardot


Pardot is a software as a service (SaaS) marketing automation platform by SalesForce offering email automation, targeted email campaigns and lead management for B2B sales and marketing organizations.


  • ZoomInfo


ZoomInfo is a go-to-market intelligence platform for B2B sales and marketing teams. The integrated cloud-based platform provides sellers and marketers with comprehensive information to help and find new potential customers.

OVERVIEW OF INTERNSHIP EXPERIENCE

(Note by Vinamrata Rani)


On the whole the experience of working as an intern at A Plan by Consultants was great. I got a lot to learn and gained experience. The internship helped me to gain important knowledge on development, industry and work environment.

Participating in the team meetings and discussing the threats helped me  attain the faith to develop a never give up attitude. Related to the work I learned about the R language, Python, Wix Website and Corvid platform and about Google Developers.

Furthermore I have learned about some research aspects during this internship.

The internship was also good to find out our  strengths and weaknesses . This helps me to know what skills and knowledge I have to improve in the coming time. This internship has given  me new insights and motivation.

CONCLUSION


The above report emphasises about tools and softwares used  during this internship, software development, its type and different softwares used in different sectors.

The tools used were:

  1. Wix Websites for web development and designing .

  2. Corvid for  adding  custom functionality and interactions in Wix's visual builder using coding.

  3. Google Sheets for the creating and analysing data.

  4. RStudio for statistical computing and graphics.

  5. Anaconda for machine learning applications and data processing using Python and R programming.


It was a wonderful learning experience for me while working on this report. This internship took me through the various phases of development and designing and gave me real insight into the world of software engineering. The joy of working and the thrill involved while tackling the various problems and challenges gave me a feel of the developers’ industry.

ABBREVIATIONS OR APPENDICES


Appendix A

  1. Table 1:  Tools used during Internship

  2. Table 2:Development Softwares and solution provided

  3. Table 3:Designing Softwares and solution provided

  4. Table 4: Marketing Softwares and solution provided

Appendix C

  1. IDE :                     Integrated Development Environment

  2. SDE  :                    Software Development  Environment

  3. API  :                    Application Programming Interface

  4. IoT :                     Internet of Things

  5. CSP :       Cloud Service Provider

  6. AI :    Artificial Intelligence

  7. UI :   User Interface

  8. AWS :    Amazon Web Service

  9. RFID :     Radio-Frequency Identification

  10. SaaS :    Software as a Service

  11. B2B :    Business-to-Business


CONTRIBUTOR DESCRIPTION


Name: Vinamrata Rani

College Name: Bakhtiyarpur College of Engineering,Patna, India

Designation: Student


Description: Vinamarta is pursuing Bachelor of Technology in Computer Science and Engineering at Bakhtiyarpur College of Engineering, Patna.

She has great interest in coding and open source projects. She likes to explore new software platforms and technology.

Contributors

Priyansh Parwani

Priyansh Parwani

Designation and Postion: Duration of Internship: Date (From-to): Contributor's Description: Profile Link: