You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@
28
28
29
29
<br>
30
30
31
-
This is a template repository aimed to kickstart your project with a setup from a real-world application! This template utilizes the following tech-stack:
31
+
This is a template repository aimed to kick-start your project with a setup from a real-world application! This template utilizes the following techstack:
@@ -51,24 +51,24 @@ Well, the easy answer is **Asynchronousity** and **Speed**!
51
51
52
52
## Other Technologies
53
53
54
-
The abovelisted technologies are just the main ones. There are other technologies utilized in this project template to ensure that your application is robust and provides the best-possible development environment for your team! These technologies are:
54
+
The above-listed technologies are just the main ones. There are other technologies utilized in this project template to ensure that your application is robust and provides the bestpossible development environment for your team! These technologies are:
55
55
56
56
*[TOML](https://toml.io/en/) $\rightarrow$ The one-for-all configuration file. This makes it simpler to setup our project.
57
57
*[Pyenv](https://github.com/pyenv/pyenv) $\rightarrow$ The simplest way to manage our Python versions.
58
58
*[Pyenv-VirtualEnv](https://github.com/pyenv/pyenv-virtualenv) $\rightarrow$ The plugin for `Pyenv` to manage the virtual environment for our packages.
59
-
*[Pre-Commit](https://pre-commit.com/) $\rightarrow$ Git hook scripts to identify issues and quality of your code before pushing it to GitHub. These hooks are implemented for the following linting pakcages:
60
-
*[Black (Python)](https://black.readthedocs.io/en/stable/) $\rightarrow$ Manage your code style with autoformatting and parallel continuous integration runner for Python.
59
+
*[Pre-Commit](https://pre-commit.com/) $\rightarrow$ Git hook scripts to identify issues and quality of your code before pushing it to GitHub. These hooks are implemented for the following linting packages:
60
+
*[Black (Python)](https://black.readthedocs.io/en/stable/) $\rightarrow$ Manage your code style with auto-formatting and parallel continuous integration runner for Python.
61
61
*[Isort (Python)](https://pycqa.github.io/isort/) $\rightarrow$ Sort your `import` for clarity. Also for Python.
62
-
*[MyPy (Python)](https://mypy.readthedocs.io/en/stable/) $\rightarrow$ A static type checker for Python that helps you write a cleaner code.
62
+
*[MyPy (Python)](https://mypy.readthedocs.io/en/stable/) $\rightarrow$ A static type checker for Python that helps you to write cleaner code.
63
63
*[Pre-Commit CI](https://pre-commit.ci/) $\rightarrow$ Continuous integration for our Pre-Commit hook that fixes and updates our hook versions.
64
-
*[CodeCov](https://about.codecov.io/) $\rightarrow$ A platform that analyze the result of your automated tests.
64
+
*[CodeCov](https://about.codecov.io/) $\rightarrow$ A platform that analyzes the result of your automated tests.
65
65
*[PyTest](https://docs.pytest.org/en/7.2.x/) $\rightarrow$ The testing framework for Python code.
66
66
*[DBDiagram](https://dbdiagram.io/home) $\rightarrow$ A platform that lets your design your database by writing SQL and converting it into ERD. This platform provides a complete symbol for entity relationships (not like many other platforms!).
67
67
*[GitHub Actions](https://github.com/features/actions) $\rightarrow$ The platform to setup our CI/CD by GitHub.
68
-
*[SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) $\rightarrow$ The go-to database interface library for Python. The 2.0 is the most recent update where it provides asynchronous setup.
69
-
*[CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) $\rightarrow$ A file for distributing the responsibilities in our project to each team/team mate.
68
+
*[SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) $\rightarrow$ The go-to database interface library for Python. The 2.0 is the most recent update where it provides an asynchronous setup.
69
+
*[CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) $\rightarrow$ A file for distributing the responsibilities in our project to each team/teammate.
70
70
71
-
My choice for a project development worklow is usually the [Trunk-Based Development](https://trunkbaseddevelopment.com/) because of the straight forward approach in the collaboration workflow, hence the name `trunk` for the main branch repository instead of `master` or `main`.
71
+
My choice for a project development workflow is usually the [Trunk-Based Development](https://trunkbaseddevelopment.com/) because of the straightforward approach in the collaboration workflow, hence the name `trunk` for the main branch repository instead of `master` or `main`.
72
72
73
73
## What Code is included?
74
74
@@ -84,7 +84,7 @@ For the backend application:
84
84
* Database-related events e.g. database table registration by app startup in `backend/src/repository/events.py`.
85
85
* C. R. U. D. methods for `Account` object in `backend/src/repository/crud/account.py`.
86
86
* Table classes registration file in `backend/src/repository/base.py`.
87
-
* Alembic setup for autogenerating asynchronous database migrations in `backend/src/repository/migration/**`.
87
+
* Alembic setup for auto-generating asynchronous database migrations in `backend/src/repository/migration/**`.
88
88
* Alembic main configuration file in `backend/alembic.ini`.
89
89
* Dependency injection for database session and repository in `backend/src/api/**`.
90
90
* API endpoints for `Account` signup and signin in `backend/src/api/routes/authentication.py`.
@@ -94,15 +94,15 @@ For the backend application:
94
94
* Helper functions, string messages, and error handling in `backend/src/utilities/**`.
95
95
* A comprehensive FastAPI application initialization in `backend/src/main.py`.
96
96
97
-
For testing I have prepared the following simple code to kickstart your test-driven development:
97
+
For testing, I have prepared the following simple code to kick-start your test-driven development:
98
98
* A simple replication of the backend application for testing purposes and the asynchronous test client in `backend/tests/conftest.py`.
99
99
* 2 simple test functions to test the backend application initialization in `tests/unit_tests/test_src.py`.
100
100
101
101
For the DevOps:
102
102
* A simple `build` job to test the compilation of the source code for the backend application in `.github/workflows/ci-backend.yaml`.
103
103
* A simple linting job called `code-style` with black, isort, flake8, and mypy in `.github/workflows/ci-backend.yaml`.
104
104
* An automated testing with `PyTest` and an automated test reporting with `Codecov` in in `.github/workflows/ci-backend.yaml`.
105
-
* A source code responsibility distribution file in `.github/CODEOWNERS` (Please change the username into your own).
105
+
* A source code responsibility distribution file in `.github/CODEOWNERS` (Please change the username to your own).
106
106
* A `YAML` file for an automated semantic commit message in `.github/workflows/ci-backend.yaml`.
107
107
* An automated test report monitoring via `Codecov` in `codecov.yaml`
108
108
* A CI for automatically updating all linter version in the pre-commit `YAML` file in `.pre-commit-config.YAML`.
@@ -114,7 +114,7 @@ For containerization:
114
114
115
115
For the team development environment:
116
116
* A pre-commit hooks for `Black`, `Isort`, and `MyPy` to ensure the conventional commit message before pushing an updated code into the remote repository in `.pre-commit-config.YAML`.
117
-
* All secret variables are listed in `.env.example`. You need to copy these variables and set the values respectively to yoour need and save them in a new `.env` in the the root directory.
117
+
* All secret variables are listed in `.env.example`. You need to copy these variables and set the values respectively to your need and save them in a new `.env` in the root directory.
118
118
119
119
## Setup Guide
120
120
@@ -156,9 +156,9 @@ This backend application is setup with `Docker`. Nevertheless, you can see the f
156
156
```
157
157
158
158
5. Backend app credentials setup:
159
-
If you are not used to VIM or Linux CLI, then ignore the `echo`command and do it manually. All the secret variables forthis template is locatedin`.env.example`.
159
+
If you are not used to VIM or Linux CLI, then ignore the `echo`command and do it manually. All the secret variables forthis template are locatedin`.env.example`.
160
160
161
-
If you want to have another namesfor the secret variables, don't forget to change them also in:
161
+
If you want to have another namefor the secret variables, don't forget to change them also in:
162
162
163
163
* `backend/src/config/base.py`
164
164
* `docker-compose.yaml`
@@ -171,7 +171,7 @@ This backend application is setup with `Docker`. Nevertheless, you can see the f
171
171
```
172
172
173
173
6. `CODEOWNERS` setup:
174
-
Go to `.github/` and open `CODEOWNERS` file. This file is to assign the code to specific team member so you can distribute the weights of the project clearly.
174
+
Go to `.github/` and open `CODEOWNERS` file. This file is to assign the code to a specific team member so you can distribute the weights of the project clearly.
175
175
176
176
7. Docker setup:
177
177
```shell
@@ -281,7 +281,7 @@ backend/
281
281
├── unit_tests/ # Unit tests
282
282
├── test_src.py # Testing the src directory's version
283
283
├── conftest.py # The fixture codes and other base test codes
284
-
├── Dockerfile # Docker cpnfiguration file for backend application
284
+
├── Dockerfile # Docker configuration file for backend application
285
285
├── README.md # Documentation for backend app
286
286
├── entrypoint.sh # A script to restart backend app container if postgres is not started
0 commit comments