|
27 | 27 |
|
28 | 28 | ## Technology Stack and Features
|
29 | 29 |
|
30 |
| -- β‘ [**FastAPI**](https://fastapi.tiangolo.com) for the Python backend API. |
31 |
| - - π¦ [**Poetry**](https://python-poetry.org) for dependency management. |
32 |
| - - πΆ [**Ruff**](https://github.com/astral-sh/ruff) for linting. |
33 |
| - - π [**Pydantic**](https://docs.pydantic.dev) for data validation. |
34 |
| - - π [**SQLite**](https://www.sqlite.org) as database. |
35 |
| - - π **ORM Free**: Use raw SQL queries by leveraging the repository pattern. |
36 |
| - - π [**SQLift**](https://github.com/SpaceShaman/SQLift) for database migrations. |
37 |
| -- π [**Nuxt.js**](https://nuxt.com) for the frontend. |
38 |
| - - π¦ [**TypeScript**](https://www.typescriptlang.org) for static type checking. |
39 |
| - - π [**Prettier**](https://prettier.io) for code formatting. |
40 |
| - - β¨ [**ESLint**](https://eslint.org) for linting. |
41 |
| - - π¨ [**TailwindCSS**](https://tailwindcss.com) for styling. |
42 |
| - - π§© [**daisyUI**](https://daisyui.com) for ready-to-use [**TailwindCSS**](https://tailwindcss.com) components. |
43 |
| - - π Middleware for authentication. |
44 |
| - - π Form validation via [**VeeValidate**](https://vee-validate.logaretm.com) and [**Yup**](https://yup-docs.vercel.app/) |
45 |
| - - π¨ Theme selector with 32 themes from [**daisyUI**](https://daisyui.com). |
46 |
| - - π¨ Alerts and toasts via simple utility functions. |
47 |
| - - β Call `showErrorAlert('message')` to show an error message. |
48 |
| - - β
Call `showSuccessAlert('message')` to show a success message. |
49 |
| - - π‘ Call `showInfoAlert('message')` to show an info message. |
50 |
| - - β οΈ Call `showWarningAlert('message')` to show a warning message. |
| 30 | +### Backend |
| 31 | + |
| 32 | +- β‘ [**FastAPI**](https://fastapi.tiangolo.com) as the backend framework. |
| 33 | +- π¦ Dependency management with [**Poetry**](https://python-poetry.org). |
| 34 | +- πΆ Code linting using [**Ruff**](https://github.com/astral-sh/ruff). |
| 35 | +- π Data validation with [**Pydantic**](https://docs.pydantic.dev). |
| 36 | +- π [**SQLite**](https://www.sqlite.org) as the database. |
| 37 | +- π **ORM free** approach using raw SQL queries with the repository pattern. |
| 38 | +- π Database migrations with [**SQLift**](https://github.com/SpaceShaman/SQLift). |
51 | 39 | - π **JWT** (JSON Web Token) authentication.
|
52 | 40 | - π Registration with email based account activation.
|
53 | 41 | - π Secure password hashing.
|
54 |
| -- π« Email based password recovery. |
55 |
| -- π§ SMTP email integration for sending emails. |
56 |
| -- βοΈ Jinja templates for email messages. |
57 |
| -- β
Tests with [Pytest](https://pytest.org). |
58 |
| -- π’ Deployment instructions using Docker Compose. |
59 |
| -- π¦ [**Traefik**](https://doc.traefik.io/traefik) as reverse proxy. |
60 |
| -- π **CI/CD** with GitHub Actions |
61 |
| - - π§ͺ Automated testing before deployment |
62 |
| - - π Code coverage reporting with Codecov |
63 |
| - - π Continuous integration and deployment pipeline |
64 |
| - - π¦ Ready-to-use workflow configurations in `.github/workflows/` |
| 42 | +- π« Password recovery via email. |
| 43 | +- π§ SMTP integration for sending emails. |
| 44 | +- βοΈ Email templates using Jinja. |
| 45 | +- β
Unit testing with [**Pytest**](https://pytest.org). |
| 46 | + |
| 47 | +### Frontend |
| 48 | + |
| 49 | +- π [**Nuxt.js**](https://nuxt.com) as the frontend framework. |
| 50 | +- π¦ [**TypeScript**](https://www.typescriptlang.org) for static type checking. |
| 51 | +- π Code formatting with [**Prettier**](https://prettier.io). |
| 52 | +- β¨ Code linting using [**ESLint**](https://eslint.org). |
| 53 | +- π¨ Styling with [**TailwindCSS**](https://tailwindcss.com). |
| 54 | +- π§© Ready-to-use components from [**daisyUI**](https://daisyui.com). |
| 55 | +- π Middleware for authentication handling. |
| 56 | +- π Form validation with [**VeeValidate**](https://vee-validate.logaretm.com) and [**Yup**](https://yup-docs.vercel.app/). |
| 57 | +- π¨ Theme selector with 32 themes from [**daisyUI**](https://daisyui.com). |
| 58 | +- π¨ Utility functions for alerts and notifications. |
| 59 | + - β Call `showErrorAlert('message')` to show an error message. |
| 60 | + - β
Call `showSuccessAlert('message')` to show a success message. |
| 61 | + - π‘ Call `showInfoAlert('message')` to show an info message. |
| 62 | + - β οΈ Call `showWarningAlert('message')` to show a warning message. |
| 63 | + |
| 64 | +### CI/CD |
| 65 | + |
| 66 | +- π CI/CD pipeline with GitHub Actions. |
| 67 | +- π§ͺ Automated testing before deployment. |
| 68 | +- π Code coverage reporting with [**Codecov**](https://about.codecov.io) |
| 69 | +- π Ready-to-use workflow configurations in [.github/workflows/](.github/workflows/) |
| 70 | + |
| 71 | +### Deployment |
| 72 | + |
| 73 | +- π’ Deployment instructions using [**Docker Compose**](https://docs.docker.com/compose). |
| 74 | +- π¦ [**Traefik**](https://doc.traefik.io/traefik) as a reverse proxy. |
| 75 | + |
| 76 | +## Screenshots |
65 | 77 |
|
66 | 78 | ### Login Page
|
67 | 79 |
|
@@ -127,7 +139,7 @@ docker-compose -f docker-compose.dev.yml up
|
127 | 139 | docker-compose up
|
128 | 140 | ```
|
129 | 141 |
|
130 |
| -### CI/CD |
| 142 | +### CI/CD configuration |
131 | 143 |
|
132 | 144 | This project has a CI/CD pipeline with GitHub Actions.
|
133 | 145 | You can see the workflow configuration in [.github/workflows/](.github/workflows/).
|
|
0 commit comments