Passport.ET + Containerized Deployment 🐳
A simple way to look if your passport is ready to collect and which day of the week you should collect. It is Role & Permission based site with PDF to SQLite(MarianaDB for prod) parsing, Queued jubs for PDF parsing in the background, Automated daily updates, Payment integration with Chapa payment gateway!
- Current Demo
720p_passport_github.-.Made.with.Clipchamp.mp4
- Rate Limmiting
Recording.2024-07-08.195540.mp4
- Landing Page
- Pricing Section
- Payment Integration with Chapa
- Dashboard Page
- Search By Name or Request Number
- Permission based Admin routes for data entery
- Searching Only by Name or by any related feilds
- Detailed info about your Passport and where to pick it up
- Paginated list of Latest Passport ready for pick up
- Versioned API routes now live under
src/routes/api.phpand are mounted at/api/v1/*. - Stub controllers in
App\Http\Controllers\Api\V1currently return placeholder JSON while the domain layer is extracted. - Apply the
apimiddleware stack plus the newthrottle:api.v1.defaultlimiter to keep behaviour isolated from the legacy Inertia flows.
Thank you for considering contributing to the passport.et project! By participating, you’re helping to improve this project, and your contributions are valued.
Start by forking the repository to your GitHub account.
git clone https://github.com/NegusNati/passport.et.git- Ensure Redis variables are set (
CACHE_STORE=redis,QUEUE_CONNECTION=redis,SESSION_DRIVER=redis,REDIS_HOST=redis).
docker-compose up -d --buildYou can validate the cache infrastructure with docker compose exec php php artisan redis:ping.
After workers come up, confirm Horizon is running:
docker compose exec php php artisan horizon:statusIf you enable Telegram alerts for Horizon failures, remember to set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID in your environment. The listener will automatically forward JobFailed and long-wait events once your bot is configured.
Install the Telegram notification channel package if you haven’t already:
docker compose exec php composer require laravel-notification-channels/telegramOnce you've pushed your changes, come back to this repository and submit a pull request. Make sure you include the following in your pull request:
A detailed description of what the PR does. The issue number (if applicable). Any additional information that may help with the review process.
Please follow the PSR-12 coding standards for PHP code and use ESLint rules for JavaScript code.
If you encounter a bug or have a feature request, please open an issue on the repository. Provide as much detail as possible, including steps to reproduce the issue or a description of the requested feature.
Run a k6 smoke test against the API (requires k6 installed locally):
BASE_URL=http://app.localhost k6 run tests/Performance/PassportLoadTest.jsAdjust BASE_URL to your staging/prod domain before running a heavier test.
