The first release of the Full Stack FastAPI Nuxt.js JWT Auth ORM Free Template is here! π
What's included in this version?
Backend
- β‘ FastAPI as the backend framework.
- π¦ Dependency management with Poetry.
- πΆ Code linting using Ruff.
- π Data validation with Pydantic.
- π SQLite as the database.
- π ORM free approach using raw SQL queries with the repository pattern.
- π Database migrations with SQLift.
- π JWT (JSON Web Token) authentication.
- π Registration with email based account activation.
- π Secure password hashing.
- π« Password recovery via email.
- π§ SMTP integration for sending emails.
- βοΈ Email templates using Jinja.
- β Unit testing with Pytest.
Frontend
- π Nuxt.js as the frontend framework.
- π¦ TypeScript for static type checking.
- π Code formatting with Prettier.
- β¨ Code linting using ESLint.
- π¨ Styling with TailwindCSS.
- π§© Ready-to-use components from daisyUI.
- π Middleware for authentication handling.
- π Form validation with VeeValidate and Yup.
- π¨ Theme selector with 32 themes from daisyUI.
- π¨ Utility functions for alerts and notifications.
- β Call
showErrorAlert('message')
to show an error message. - β
Call
showSuccessAlert('message')
to show a success message. - π‘ Call
showInfoAlert('message')
to show an info message. β οΈ CallshowWarningAlert('message')
to show a warning message.
- β Call
CI/CD
- π CI/CD pipeline with GitHub Actions.
- π§ͺ Automated testing before deployment.
- π Code coverage reporting with Codecov.
- π Ready-to-use workflow configurations in .github/workflows/
Deployment
- π’ Deployment instructions using Docker Compose.
- π¦ Traefik as a reverse proxy.
Features
- Login, registration, and password recovery pages.
- A simple dashboard interface.
- Theme switching and form validation.
- Email-based account activation.
How to get started?
Configure environment variables:
cp .env.default .env
Run the development environment:
docker-compose -f docker-compose.dev.yml up
Run the production environment:
docker-compose up
Thank you for checking out my project! β¨