Full Stack Banking System with CI/CD
Developed a comprehensive application, «Bank System», designed to simulate a banking environment, encompassing a backend API, a frontend interface, and associated infrastructure configurations. Here’s a detailed breakdown of the tasks involved:
Backend API Development
- Engineered the backend using Python, serving as the API responsible for handling and processing all the business logic related to banking operations.
- Structured the backend with essential files like
__init__.py
for initializing the Python package,models.py
for defining data models, androutes.py
for containing route definitions and associated handlers. - Ensured robust functionality by incorporating a suite of tests, including configurations in
conftest.py
, functional tests for route handlers intest_routes.py
, and unit tests for data models intest_model.py
Frontend Development
- Developed the frontend using Vue.js, providing a user interface for interacting with the bank system.
- Established the structure with
App.vue
as the main component,main.js
for initializing the application,index.js
for defining routes, and various Vue components likeAppAccounts.vue
,HomePage.vue
, andSkull.vue
.
Infrastructure Management
- Defined infrastructure-as-code configurations in the
app-service.bicep
file for deploying the application.
Testing
- Ensured the functionality of the backend API with a series of tests located in the
backend/tests
directory.
Deployment
- Configured deployments to Azure, ensuring that only the production code is deployed when a new release in the
main
branch is created, while all development code is deployed in thedev
branch. - Defined deployment configurations and workflows in the
.github/workflows/full-stack-bank.yml
file, setting up a CI/CD pipeline for the application using GitHub Actions.