A robust, enterprise-grade backend service built with AdonisJS v6 and TypeScript. This project serves as the core API for the Flashcards ecosystem, designed with a focus on high security and cost-efficient cloud architecture on Microsoft Azure.
| Category | Tools & Frameworks |
|---|---|
| Back-End | |
| Language | |
| Database | |
| Validation & Auth | |
| Testing | |
| Infrastructure |
- Validation: @vinejs/vine for high-performance schema validation.
- Security: @adonisjs/shield for protection against CSRF and XSS.
- Auth: @adonisjs/auth for secure session-based authentication.
- Testing: @japa/runner for unit and functional testing.
The application is deployed to Microsoft Azure using a modern, secure networking topology.
To optimize for security and cost, the infrastructure utilizes Azure Private Endpoints:
- Traffic Isolation: The backend and database communicate over a private Virtual Network (VNet). The API is not exposed to the public internet unless necessary.
- Cost Optimization: By using Service Endpoints and Private Link, we significantly reduce egress charges and data transfer costs between services.
- Security-First: This setup prevents lateral movement and ensures that sensitive data (like your MySQL connection) never leaves the private Azure backbone.
To set up the project locally for development, follow these procedures:
- Node.js: v24 or higher
- MySQL: A local instance or Docker container
# Clone the repository
git clone <your-repo-url>
cd app-flashcards-adonisjs
# Install dependencies
npm install
# Create your local environment file:
cp .env.example .env
# Generate your unique application key:
node ace generate:key
# Ensure your MySQL instance is running, then run the migrations to build your schema:
node ace migration:run
# This project uses Hot Module Replacement (HMR) for an optimized development loop:
npm run dev