Prayer request platform — anonymous prayer requests with 3 delivery forms.
Users can request prayers anonymously or register. Registered users can view history, leave reviews, and track emotional trends.
- Recorded prayer — audio/video, delivered via WhatsApp/email, 24–48h SLA. A real person prays for you.
- Instant prayer — pre-written biblical prayers matched to the request.
- AI-generated prayer — LLM-based instant prayer (OpenRouter), informed by the user's faith and religious tradition.
| Layer | Technology |
|---|---|
| Backend | PHP 8.5, Laravel 13 |
| Frontend | Livewire 3, Volt 1.7, Tailwind CSS 4, Vite 8, TypeScript, Blade |
| Database | SQLite (dev), MariaDB (prod / devcontainer) |
| AI | OpenRouter API (chat completions) |
| Testing | PHPUnit 12 (Unit + Feature), Pint, Larastan |
- PHP 8.5+
- Composer 2
- Node.js 22+ and npm
- [Optional] Docker + VS Code Dev Containers extension (or GitHub Codespaces)
The repo ships a ready-made dev environment in .devcontainer/ — PHP 8.5, MariaDB, Composer, Node, CLI agentic tools (opencode, claude-code, openspec, impeccable).
- Open the repository in VS Code.
- Install the Dev Containers extension (
ms-azuretools.vscode-containers). - Run Dev Containers: Reopen in Container (or
Ctrl+Shift+P→ "Rebuild and Reopen in Container"). - On first creation, the post-create script installs dependencies, copies
.env.devcontainerto.env, and builds the frontend automatically. - Start the dev servers:
composer run devThe post-create script already ran composer install, npm install and npm run build, so you can also just run php artisan serve + npm run dev separately if you prefer.
Services available inside the container:
| Service | URL/port |
|---|---|
| App | http://localhost:8000 |
| Vite | http://localhost:5173 |
| MariaDB | localhost:3306 (db: rogaiconosco, user/pass: rogaiconosco) |
Open the repo on GitHub → Code → Codespaces → Create codespace on main. Same setup runs automatically.
.env.devcontainer does not include AI keys. To enable AI-generated prayers, add to your .env inside the container:
OPENROUTER_API_KEY=sk-or-...
OPENROUTER_MODEL=your/model
Then restart the servers.
Manual setup on your machine (SQLite used by default — no database server needed).
git clone git@github.com:GustavoSMelo/rogai_conosco.git
cd rogai_conosco
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
npm install
npm run buildStart the full dev environment (server + queue + logs + Vite, all at once):
composer run devOr run processes separately:
php artisan serve # app at http://localhost:8000
php artisan queue:listen # process queued jobs
npm run dev # Vite dev serverOne-shot setup (equivalent to the devcontainer post-create):
composer run setupKey variables in .env:
| Variable | Description |
|---|---|
DB_CONNECTION |
sqlite (default, dev) or mysql/mariadb |
OPENROUTER_API_KEY |
API key for AI-generated prayers (OpenRouter) |
OPENROUTER_MODEL |
Model id used for AI prayers |
DASHBOARD_PASSWORD |
Password for the internal dashboard |
MAIL_MAILER |
log in dev; configure SMTP/Mailtrap for delivery |
The dashboard requires an encrypted password stored as DASHBOARD_PASSWORD in .env. Generate it with:
php artisan dashboard:password "my-secret-password"Or omit the argument to be prompted interactively:
php artisan dashboard:passwordCopy the printed DASHBOARD_PASSWORD=<encrypted> line into your .env and restart the servers.
php artisan test # all tests
php artisan test --coverage # coverage report (target ≥ 75%)
php artisan test --filter=SomeTestCode quality gate (also enforced by the pre-commit hook in .githooks/):
vendor/bin/pint # PSR-1/PSR-12 formatting
vendor/bin/phpstan analyse # static analysis (0 errors)A production compose file (Nginx + PHP-FPM + MariaDB) lives at the repo root:
docker compose up -d --buildSet DB_* environment variables in your shell or .env before running (the compose file consumes ${DB_PASSWORD}, ${DB_DATABASE}, ${DB_USERNAME}, ${DB_PORT}).