Professional Documents
Culture Documents
2022
Keywords: Flutter, GitHub, Docker, GitHub Actions, Amazon EC2, Sentry, DeepSource, GuardRails
ABSTRACT resumes from other people who are interested in the same company.
A user will be able to choose the company of interest and be able to Based on the differences, the tool will suggest learning resources that
upload their resume. After that, the Resume Insights tool analyses would make it easier for the user to master new skills.
the resume and extracts useful information, which is then compared to
resumes from other people who are interested in the same company.
Based on the differences, the tool will suggest learning resources that
would make it easier for the user to master new skills.
CONTENTS
Contents 1
4 Development and Workflow 3 – Users can choose to contribute and has access to additional useful
4.1 Source Control Management: Git and GitHub . . . . . . 3 links.
4.2 Application Testing: Flutter Testing . . . . . . . . . . . 3
The lib/ directory contains the entire code for the scientific calculator
4.3 Continuous Integration: GitHub Actions . . . . . . . . 4
application.
4.4 Continuous Delivery: Ansible . . . . . . . . . . . . . . 4
4.5 Continuous Monitoring: Sentry . . . . . . . . . . . . . 5
4.6 Continuous Monitoring: DeepSource . . . . . . . . . . 5
4.7 Continuous Monitoring: GuardRails . . . . . . . . . . . 6
5 Acknowledgements 6
6 References 6
1.1 Scenario
A user will be able to choose the company of interest and be able Resume Insights with Calendar Section
to upload their resume. After that, the Resume Insights tool analyses
the resume and extracts useful information, which is then compared to
This manuscript is in the process of being reviewed and will not be published. 1
CS 816 - Software Production Engineering
– RAM: 4 GiB
– No of vCPU: 2
3.2 VS Code
– Memory Volume: 70 GiB
sudo apt install apt-transport-https
– IPv6 Support: Yes
sudo apt update
For Monitoring and Backup C5a.xlarge EC2 Instance sudo apt install code
– RAM: 8 GiB
– No of vCPU: 4
– Frontend: Flutter
– Backend: Firebase
3.3 Android SDK and Flutter
– Database: Google Sheets
RUN apt update && apt install -y curl git unzip
– Cloud: Amazon Web Services
xz-utils zip libglu1-mesa openjdk-8-jdk wget
DevOps Tools RUN mkdir -p Android/sdk
ENV ANDROID_SDK_ROOT /home/user/Android/sdk
– Source Control Management: GitHub RUN mkdir -p .android && touch
.android/repositories.cfg
– Containerization: Docker RUN wget -O sdk-tools.zip
dl.google.com/android/repository/sdk-tools.zip
– Continuous Integration (CI): Github Actions RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/sdk/tools
– Continuous Deployment (CD): Ansible RUN cd Android/sdk/tools/bin && yes |
./sdkmanager --licenses
– Monitoring: Sentry, DeepSource, GuardRails RUN cd Android/sdk/tools/bin && ./sdkmanager
"build-tools;29.0.2" "patcher;v4"
"platform-tools" "platforms;android-29"
3 INSTALLATION "sources;android-29"
This section comprises all of the commands for installing the tools ENV PATH
needed to set up the Resume Insights development environment. "$PATH:/home/user/Android/sdk/platform-tools"
RUN git clone
3.1 Git https://github.com/flutter/flutter.git
ENV PATH "$PATH:/home/user/flutter/bin"
RUN flutter doctor
RUN sudo apt-get install git-all
2
CS 816 - Software Production Engineering
3
CS 816 - Software Production Engineering
Jenkins was used to build the Project CI pipeline at first, but it had to be
abandoned due to a lack of resources, such as memory. Github Actions
is one of the many options that could be used to implement continuous
integration by ensuring that a new version of a software is shipped to the
production or testing area as soon as possible.
Workflow History
A job is a set of steps in a workflow that execute on the same runner.
Each step is either a shell script that will be executed, or an action that
will be run. Steps are executed in order and are dependent on each other.
the yml file are accessed during the build process. To push our image to
Docker Hub, a login to Docker is required.
4
CS 816 - Software Production Engineering
In Ansible, there are two categories of computers: the control node and 4.5 Continuous Monitoring: Sentry
managed nodes. The control node is a computer that runs Ansible. There Sentry is an application monitoring platform that enables developers
must be at least one control node, although a backup control node may to monitor, diagnose, fix, and optimize the performance of their code.
also exist. A managed node is any device being managed by the control It is an open-source full-stack error tracking system which supports a
node. Ansible executes these modules over SSH and removes them when wide range of server, browser, desktop and native mobile languages and
finished. The only requirement for this interaction is that the Ansible frameworks including PHP, Node.js, Python, Ruby, C#, Java, Go, React,
control node has login access to the managed nodes. [8] Angular, Vue, JavaScript and more. The system is used by Dropbox,
AirBnB, PayPal, Uber, reddit, Mozilla, MailChimp, and Microsoft to
The Dockerfile in root folder is created to run the shell commands for monitor thousands of applications.
ansible. Alpine (a lightweight Linux) is used as the base image, with
an ansible setup applied on top of it. As noted above, the requirements
and environment setup are completed (ansible, pip3, docker, sshpass,
openssh-client). Inventory, configuration, and the shell script are all taken
care of and copied to the appropriate locations.
5
CS 816 - Software Production Engineering
5 ACKNOWLEDGEMENTS
I am grateful to Prof. B Thangaraju B and the CS 816 course TAs for
their assistance in completing this mini-project.
6 REFERENCES
[5] Patil, S. “Git And Github Version Control (Local And Remote
Repository).” Git And Github Version Control (Local And Remote
Repository). Available at: https://www.c-sharpcorner.com/article/git-
and-github-version-control-local-and-remote-repository/.
4.7 Continuous Monitoring: GuardRails [8] “What is Ansible? — Opensource.com.” What Is Ansible? —
GuardRails is a continuous application security verification platform Opensource.Com. Available at: https://opensource.com/resources/what-
that empowers modern development teams to find, fix and prevent ansible. Accessed April 18, 2022.
vulnerabilities related to source code, open source libraries, secret
management and cloud configuration. [9] “Flutter - Build Apps for Any Screen.” Flutter - Build Apps for Any
Screen, flutter.dev, https://flutter.dev/. Accessed 13 May 2022.