https://github.com/riwert/produx
Vanilla PHP OOP API + Nuxt.js v3 client with PWA.
https://github.com/riwert/produx
api nuxt nuxt3 oop php pinia pwa storefrontui tailwindcss
Last synced: about 1 month ago
JSON representation
Vanilla PHP OOP API + Nuxt.js v3 client with PWA.
- Host: GitHub
- URL: https://github.com/riwert/produx
- Owner: riwert
- Created: 2023-06-05T17:50:56.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-10-22T20:33:28.000Z (8 months ago)
- Last Synced: 2026-04-19T14:47:45.122Z (about 2 months ago)
- Topics: api, nuxt, nuxt3, oop, php, pinia, pwa, storefrontui, tailwindcss
- Language: PHP
- Homepage: https://produx.vercel.app
- Size: 794 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Produx
Vanilla PHP OOP API + Nuxt.js v3 client with PWA.
App demo: [produx.vercel.app](https://produx.vercel.app)
## 1. SWAPI - PHP REST API - [/api](api)
- [X] Vanilla PHP (without any framework)
- [X] Composer packages (autoload, phpdotenv)
- [X] OOP approach
- [X] PDO for SQL
- [X] MySQL database [import SQL from produx.sql file](api/database/produx.sql)
- [X] ENV config [set new .env based on .env.example](api/.env.example)
- [X] mod_rewrite [set in .htaccess correct ``RewriteBase /API_DIR``](api/.htaccess)
## 2. Produx - Nuxt.js client - [/client](client)
- [X] Nuxt v3
- [X] Vue v3
- [X] Vue Router
- [X] Vue Meta
- [X] TS support
- [X] Composition API with simple syntax & auto imports
- [X] SPA / SSR / SSR + Hydration/ SSG as rendering options
- [X] Vite and Nitro
- [X] Pinia as a store for sharing a global state with persistence
- [X] Tailwind CSS v3
- [X] Storefront UI v2
- [X] PWA installable with service worker (workbox) [check manifest.json](client/public/manifest.json)
- [X] ENV config [set new .env based on .env.example](client/.env.example)
## Ad.1 SWAPI screenshot
[](api/swapi-screenshot.png "See SWAPI example screenshot")
## Ad.2 Produx screenshot
[](client/produx-screenshot.jpg "See Produx example screenshot")