CalcTek Calculator
An API-driven calculator built with Laravel 11 + Lighthouse GraphQL on the backend and Vue 3 + Vite + shadcn-vue on the frontend. Authenticated via Google OAuth, with persistent calculation history.
Architecture
graph TB
subgraph Client
FE[Vue 3 + Vite SPA]
end
subgraph Nginx Reverse Proxy
NG[Nginx]
end
subgraph Backend
PHP[Laravel 11 / PHP-FPM]
GQL[Lighthouse GraphQL]
AUTH[Sanctum + Socialite]
MATH[MathExecutor]
DB[(SQLite)]
end
subgraph Docs
MK[MkDocs Material]
end
FE -- "HTTPS :443" --> NG
NG -- "FastCGI :9000" --> PHP
PHP --> GQL
PHP --> AUTH
GQL --> MATH
GQL --> DB
NG -- ":8000" --> MK
style FE fill:#42b883,color:#fff
style PHP fill:#ff2d20,color:#fff
style GQL fill:#e10098,color:#fff
style DB fill:#003b57,color:#fff
style MK fill:#526cfe,color:#fff
Quick Links
| Section |
Description |
| Product |
Product specs, user stories, and acceptance criteria |
| Engineering |
Tech specs, onboarding guides, and architecture decisions |
| Operations |
Deployment runbooks and operational procedures |
Tech Stack
| Layer |
Technology |
| Frontend |
Vue 3, Vite, shadcn-vue, Apollo Client, TypeScript |
| Backend |
Laravel 11, Lighthouse GraphQL, PHP 8.3 |
| Auth |
Google OAuth via Socialite + Sanctum bearer tokens |
| Database |
SQLite |
| Mobile |
CapacitorJS (iOS + Android) |
| Infrastructure |
Docker Compose (local), GKE + Nginx Ingress (prod) |
| Docs |
MkDocs Material |
Local Development URLs
Getting Started
make setup # First-time setup (hosts, SSL, network, launchdaemon)
make start # Start all containers
See the Getting Started Guide for full instructions.