{"id":50577388,"url":"https://github.com/muuhesham/source_code_gp","last_synced_at":"2026-06-04T23:02:43.545Z","repository":{"id":357213339,"uuid":"1235924883","full_name":"muuhesham/source_code_gp","owner":"muuhesham","description":"Fa3liat — Event Management \u0026 E-Ticketing Web Application","archived":false,"fork":false,"pushed_at":"2026-05-18T23:59:58.000Z","size":30173,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-19T01:48:41.070Z","etag":null,"topics":["docker","event-management-system","express","javascript","jwt","mobile-app","nodejs","npm","ollama-api","openai","postgressql","prisma-orm","react","redis","stripe","tailwindcss","ticketing-application","typescript","vitejs","webapp"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muuhesham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-11T19:37:33.000Z","updated_at":"2026-05-19T00:00:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/muuhesham/source_code_gp","commit_stats":null,"previous_names":["muuhesham/source_code_gp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/muuhesham/source_code_gp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muuhesham%2Fsource_code_gp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muuhesham%2Fsource_code_gp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muuhesham%2Fsource_code_gp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muuhesham%2Fsource_code_gp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muuhesham","download_url":"https://codeload.github.com/muuhesham/source_code_gp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muuhesham%2Fsource_code_gp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33923190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","event-management-system","express","javascript","jwt","mobile-app","nodejs","npm","ollama-api","openai","postgressql","prisma-orm","react","redis","stripe","tailwindcss","ticketing-application","typescript","vitejs","webapp"],"created_at":"2026-06-04T23:02:42.907Z","updated_at":"2026-06-04T23:02:43.533Z","avatar_url":"https://github.com/muuhesham.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fa3liat — Event Management \u0026 E-Ticketing Platform\n\nFa3liat is a production-grade Event Management \u0026 E-Ticketing system designed for seamless event organization and secure ticket purchasing. The platform offers a robust backend API, a responsive web dashboard for organizers and attendees, and a specialized mobile application for real-time QR-based ticket validation.\n\n---\n\n## 📂 Repository Structure\n\n```text\nfa3liat/\n├── src/\n│   ├── backend/           # Express.js API, Prisma ORM, BullMQ Workers\n│   ├── frontend/          # React.js Web Application (Vite)\n│   └── mobile/            # React Native (Expo) Scanner Application\n├── exe/\n│   └── app-release.apk    # Pre-built Android Scanner App\n├── docker-compose.yml     # Root orchestration for the entire stack\n└── README.md              # Project documentation\n```\n\n---\n\n## 📥 Project Setup / Clone Repository\n\nThis project uses **Git Submodules** to manage the frontend, backend, and mobile components as separate repositories. This architecture allows each part of the platform to be developed and versioned independently while remaining part of a unified stack.\n\n### 1. Cloning for the First Time\nTo clone the main repository and automatically pull all submodule source code in one step:\n\n```bash\ngit clone --recurse-submodules \u003crepo-url\u003e\n```\n\n### 2. If You Already Cloned (Empty Folders)\nIf you have already cloned the repository normally and find the `src/` subdirectories empty, run the following to initialize and fetch the code:\n\n```bash\ngit submodule update --init --recursive\n```\n\n### 3. Keeping Submodules Updated\nWhen pulling new changes from the main repository, ensure your submodules are also updated to their latest pinned commits:\n\n```bash\ngit pull origin main\ngit submodule update --recursive\n```\n\n### ⚠️ Troubleshooting\n- **Empty Folders**: If `src/backend`, `src/frontend`, or `src/mobile` are empty after cloning, run the initialization command in Step 2.\n- **Submodule Not Updated**: If the project fails to build after a pull, your submodules might be out of sync. Run `git submodule update --recursive`.\n- **Detached HEAD Warning**: Submodules are pinned to specific commits. It is normal for them to be in a \"detached HEAD\" state. If you need to make changes within a submodule, remember to `git checkout main` (or your target branch) inside that specific directory first.\n\n---\n\n## 🚀 Quick Start (Docker)\n\nThe platform is optimized for Docker. Follow these steps to get started:\n\n### Prerequisites\n- Docker and Docker Compose installed.\n- `.env` files configured in `src/backend` and `src/frontend` (use the provided `.env.example` templates).\n\n### 1. Configure Environment Files\n```bash\n# (Optional) Docker Compose overrides (ports, profiles)\ncp .env.example .env\n\n# Required for Docker + local dev\ncp src/backend/.env.example src/backend/.env\ncp src/frontend/.env.example src/frontend/.env\n\n# Optional (mobile app)\ncp src/mobile/.env.example src/mobile/.env\n```\n\n### 2. Start the Application\nThis command builds the images and starts all services (DB, Redis, backend, workers, frontend).\n\n```bash\ndocker compose up -d --build\n```\n\nThe application will be available at `http://localhost:5173`.\n\n\u003e Note: the backend container runs `prisma migrate reset` + seeds the database on startup (development convenience). This **wipes existing data** in the Docker database volume.\n\n### 3. Stopping the Application\n\nTo stop all running services:\n\n```bash\ndocker compose down\n```\n\n---\n\n## 🛠️ Manual Development Setup\n\n### Backend Setup\n```bash\ncd src/backend\n# 1. Configure .env (ensure PORT=3000)\n# 2. Install dependencies\nnpm install\n# 3. Setup DB \u0026 Generate Client\nnpm run setup\n# 4. Start Server\nnpm run dev\n```\n\n### Frontend Setup\n```bash\ncd src/frontend\nnpm install\nnpm run dev\n```\n\n### Mobile App Setup (Scanner)\nTo run the mobile application for ticket scanning:\n1. **Download Expo Go**: Install the **Expo Go** app from the [Google Play Store](https://play.google.com/store/apps/details?id=host.exp.exponent) or [Apple App Store](https://apps.apple.com/app/expo-go/id982107779) to open our mobile app.\n2. **Start the App**:\n   ```bash\n   cd src/mobile\n   npm install\n   npx expo start\n   ```\n3. **Open the App**: Scan the QR code displayed in your terminal using the Expo Go app to start scanning tickets.\n\n---\n\n## 🔐 Environment Variables\n\n### Backend (`src/backend/.env`)\n| Variable | Description | Standard Value |\n| :--- | :--- | :--- |\n| `PORT` | API Server Port | `3000` |\n| `DATABASE_URL` | PostgreSQL URL | `postgresql://fa3liat:fa3liat@localhost:5434/fa3liat` |\n| `REDIS_URL` | Redis URL | `redis://localhost:6381` |\n| `MAIL_HOST` | Mail SMTP Host | `localhost` |\n| `STRIPE_SECRET_KEY` | Stripe Test Key | `sk_test_...` |\n| `OLLAMA_BASE_URL` | AI Engine URL | `http://localhost:11436` |\n\n---\n\n**Fa3liat** — Built with ❤️ for Graduation Project 2026.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuuhesham%2Fsource_code_gp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuuhesham%2Fsource_code_gp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuuhesham%2Fsource_code_gp/lists"}