Skip to content

NegusNati/passport.et

Repository files navigation

alt text

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

API v1 (work in progress)

  • Versioned API routes now live under src/routes/api.php and are mounted at /api/v1/*.
  • Stub controllers in App\Http\Controllers\Api\V1 currently return placeholder JSON while the domain layer is extracted.
  • Apply the api middleware stack plus the new throttle:api.v1.default limiter to keep behaviour isolated from the legacy Inertia flows.

Contributing guideline to passport.et

Thank you for considering contributing to the passport.et project! By participating, you’re helping to improve this project, and your contributions are valued.

Getting Started

1. Fork the Repository

Start by forking the repository to your GitHub account.

2. Clone Your Fork on your machine
   git clone https://github.com/NegusNati/passport.et.git
3. Configure .env and docker-compose.yml file.
  • Ensure Redis variables are set (CACHE_STORE=redis, QUEUE_CONNECTION=redis, SESSION_DRIVER=redis, REDIS_HOST=redis).
4. Then just build the images and containers
   docker-compose up -d --build

You can validate the cache infrastructure with docker compose exec php php artisan redis:ping.

5. Horizon health check

After workers come up, confirm Horizon is running:

   docker compose exec php php artisan horizon:status

If 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/telegram
5. check it at app.localhost (if you didn't change it)
6. Submit a Pull Request

Once 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.

Code Style Guidelines

Please follow the PSR-12 coding standards for PHP code and use ESLint rules for JavaScript code.

Bug Reports and Feature Requests

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.

Follow me for updates

Telegram

Load Testing

Run a k6 smoke test against the API (requires k6 installed locally):

BASE_URL=http://app.localhost k6 run tests/Performance/PassportLoadTest.js

Adjust BASE_URL to your staging/prod domain before running a heavier test.

About

A simple way to look if your passport is read to collect and which day of the week you should collect.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •