Digital Solutions with Architectural Precision.
Expenses
Expenses Manager is a Dockerized full-stack app for personal/team expense tracking,
with token-based auth, category management, monthly reports, and a PWA frontend.
Dev Stack
### Backend
- **PHP 8.3** (`php:8.3-cli`)
- **Laravel** (fresh install in container, customized app code overlaid from `backend/`)
- **Laravel Sanctum** for API token authentication
- **PostgreSQL driver** (`pdo_pgsql`)
### Frontend
- **React 18**
- **Vite 6**
- **Tailwind CSS 3** + PostCSS + Autoprefixer
- **Axios** for API calls
- **React Router 7**
- **Chart.js 4** + `react-chartjs-2`
### Infrastructure / Runtime
- **Docker Compose** (multi-service orchestration)
- **PostgreSQL 16** (`postgres:16-alpine`)
- **Nginx 1.27** (frontend static serving)
- Optional public exposure via **Traefik** (external network: `shop-online_web`)
Main Site monitor
Frontend
Blade templates
Tailwind CSS v4
Alpine.js
Vite 7 (
laravel-vite-plugin)Font Awesome (npm packages)
Backend
PHP 8.2+
Laravel 12
Filament 5 (admin panel)
PostgreSQL 16
Redis 7 (queue/cache)
Mailables + Jobs + Scheduler
DevOps / Runtime
Docker + Docker Compose
Nginx + PHP-FPM
Dedicated services for worker and scheduler
Mailhog for local email testing
Traefik override for production (
docker-compose.traefik.yml)
Monitoring
Command:
projects:check-status(scheduled every 5 minutes)Uptime/response time logging per project
DOWN notification job:
App\Jobs\SendProjectDownNotificationJobAlert email:
App\Mail\ProjectDownMail
Newsletter (latest updates included)
Admin resources: Campaigns, Subscribers, Lists, Templates
Template builder with blocks and image support from URL/upload/media
Real queue-based sending:
campaign ->
SendNewsletterCampaignJobrecipient ->
SendNewsletterRecipientJob
Scheduler for planned campaigns:
command
newsletters:dispatch-scheduledruns every minute
Public unsubscribe endpoint with token:
GET /newsletter/unsubscribe/{token}
GDPR / Cookies
GDPR checkbox for public forms
Server-side validation: newsletter subscription requires consent
Consent persistence (
gdpr_consent, text, timestamp) on the subscriberCookie consent banner on the homepage (accept/reject)
Cookies Policy + Privacy Policy pages with content/hero configurable from admin
Admin panel
Navigation by groups:
Dashboard, Projects, Page, Forms, Settings, MEDIA, GDPR, Widgets, Newsletter, LOG
Useful settings already exposed:
General (including header texts)
SEO, Footer, reCaptcha, Tags
GDPR settings + policy pages
Language texts, Email settings, Site settings
Tickets & Events Management Platform
📱 Mobile-First Design - Optimized for smartphone use by operators
🎫 Spectacle Management - Complete spectacle/show lifecycle management
📅 Show Scheduling - Create, edit, and delete spectacles with dates and seasons
💰 Dynamic Pricing - Multiple price tiers (standard, discounted) per show
📊 Advanced Reporting - Sales, revenue, and inventory reports with PDF/XLSX export
📈 Analytics & Visualization - Interactive charts and financial breakdowns
🎼 Music Stamp Duty - Configurable tax/fee management system
👥 User Roles - Designer, Operator, Director, Administrator, Guest (read-only)
🔐 JWT Authentication - Secure token-based authentication with password recovery
📖 Guest Access - Read-only mode for viewing without modification
🇷🇴 Romanian Support - Full Romanian character support in PDFs (ă, â, î, ș, ț)
🤖 AI Integration - Groq AI for intelligent report generation and analysis
🎨 Responsive UI - Works on desktop, tablet, and mobile
🐳 Docker Ready - Complete containerization with Docker Compose
⚡ Real-time Filtering - Instant search as you type
FrontendReact 18 - UI framework
TypeScript - Type safety & IDE support
Vite - Lightning-fast build tool
SCSS Modules - Scoped styling with responsive breakpoints
Zustand - Lightweight state management
Axios - HTTP client with interceptors
React Router - Client-side navigation
Backend
Django 5.0 - Web framework
Django REST Framework - API development
PostgreSQL 15 - Relational database
Gunicorn - WSGI application server
JWT (SimpleJWT) - Token-based authentication
Groq AI - AI integration for analysis
ReportLab - PDF generation
OpenPyXL - Excel file generation
Pandas - Data manipulation & analysis
DevOps & Infrastructure
Docker - Containerization
Docker Compose - Multi-container orchestration
Nginx - Reverse proxy & static file server
Traefik - Dynamic reverse proxy routing
Mini Crm
Overview
mini-crm is a lightweight Customer Relationship Management (CRM) app built as a monorepo with a Node.js/Express API and a React/Vite frontend. It supports user authentication, contact management, tagging, search, pagination, and CSV export.
Features
Email/password authentication (JWT)
Contact CRUD with search and pagination
Tag management and tag assignment per contact
CSV export of contacts
Dockerized deployment with Traefik reverse proxy
Tech Stack
Backend: Node.js, Express, PostgreSQL, Prisma
Frontend: React, Vite, React Router
Containerization: Docker
Reverse Proxy: Traefik
Shop online
✨ Features
👤 Customer Features
🔐 User Authentication - Email-based registration, JWT login, password reset with secure tokens
🛍️ Product Catalog - Browse products with category filtering and search functionality
🔍 Advanced Search - Real-time search with category filtering
🛒 Shopping Cart - Add/remove items, persistent cart using localStorage
🏠 Saved Addresses - Save multiple addresses (home/delivery) for quick checkout
📝 Guest Checkout - Complete orders without registration
📦 Order Management - View order history, track status, download invoices
💌 Email Notifications - Automatic order confirmations and status updates
👥 User Profile - Manage account information, saved addresses, order history
📱 Responsive Design - Mobile-first design with Tailwind CSS for all devices
🛡️ Admin Features
📊 Admin Dashboard - Overview of key metrics, products, orders, and users
📝 Product Management - Full CRUD operations for products with image URLs
👥 User Management - Create, edit, delete users and assign roles
🎯 Role-Based Access - Admin, staff, and customer roles with permission control
📦 Advanced Order Management - View all orders, search by customer, filter by status
📄 PDF Invoice Generation - Generate and download formal PDF invoices for orders
🔐 Order Status Tracking - Update order status (pending → processing → shipped → delivered)
📊 Order Filtering - Search and filter orders by customer name, email, phone, status
🛠️ Technology Stack
Backend
Framework: Django 4.2.9
API: Django REST Framework 3.14.0
Authentication: djangorestframework-simplejwt 5.3.1 (JWT tokens with refresh)
Database: PostgreSQL 15 (SQLite for local dev)
PDF Generation: reportlab 4.0.7
Email: Django SMTP with configurable providers
CORS: django-cors-headers 4.3.1
Server: Gunicorn 21.2 (production)
Validation: Django built-in validators
Frontend
Framework: React 18.2.0
Build Tool: Vite 5.4.21
Routing: React Router v6.20
Styling: Tailwind CSS 3.3
HTTP Client: Axios 1.6.5 with JWT interceptors
State Management: Context API (AuthContext, CartContext)
DevOps & Infrastructure
Containerization: Docker & Docker Compose
Reverse Proxy: Traefik v3.0 (automatic SSL with Let's Encrypt)
Web Server: Nginx (Alpine)
Database: PostgreSQL 15 Alpine
Load Balancing: Built-in via Traefik
Ready to scale your idea?
From architecture to implementation, I make sure every line of code is optimized for performance and scalability. All projects benefit from automated testing (Vitest) and E2E.