{"id":29629777,"url":"https://github.com/mkloz/uevent-backend","last_synced_at":"2026-04-08T22:31:24.792Z","repository":{"id":300645987,"uuid":"976325007","full_name":"mkloz/uevent-backend","owner":"mkloz","description":"Ticket marketplace API. https://api.mkloz.com/uevent/api/docs","archived":false,"fork":false,"pushed_at":"2025-06-22T21:02:59.000Z","size":248,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-21T10:18:02.606Z","etag":null,"topics":["docker","marketplace","nestjs","openapi","prisma","s3","stripe","typescript"],"latest_commit_sha":null,"homepage":"https://api.mkloz.com/uevent/api/docs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkloz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2025-05-01T22:54:52.000Z","updated_at":"2025-06-22T22:00:39.000Z","dependencies_parsed_at":"2025-06-22T22:18:48.432Z","dependency_job_id":null,"html_url":"https://github.com/mkloz/uevent-backend","commit_stats":null,"previous_names":["mkloz/uevent-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mkloz/uevent-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkloz%2Fuevent-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkloz%2Fuevent-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkloz%2Fuevent-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkloz%2Fuevent-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkloz","download_url":"https://codeload.github.com/mkloz/uevent-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkloz%2Fuevent-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31577444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","marketplace","nestjs","openapi","prisma","s3","stripe","typescript"],"created_at":"2025-07-21T10:06:33.044Z","updated_at":"2026-04-08T22:31:24.777Z","avatar_url":"https://github.com/mkloz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.svg\" width=\"100\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ch1 align=\"center\"\u003eUEvent Backend\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://uevent.mkloz.com\"\u003e🌐 Website\u003c/a\u003e |\n  \u003ca href=\"https://api.mkloz.com/uevent/api/docs\"\u003e🛠️ API Docs\u003c/a\u003e |\n  \u003ca href=\"https://github.com/mkloz/uevent-frontend\"\u003e💻 Frontend Code\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cem\u003eEvent Sharing Platform API\u003c/em\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"https://img.shields.io/github/license/maxkrv/uevent-be?style=flat\u0026color=0080ff\" alt=\"license\"\u003e\n \u003cimg src=\"https://img.shields.io/github/last-commit/maxkrv/uevent-be?style=flat\u0026logo=git\u0026logoColor=white\u0026color=0080ff\" alt=\"last-commit\"\u003e\n \u003cimg src=\"https://img.shields.io/github/languages/top/maxkrv/uevent-be?style=flat\u0026color=0080ff\" alt=\"repo-top-language\"\u003e\n \u003cimg src=\"https://img.shields.io/github/languages/count/maxkrv/uevent-be?style=flat\u0026color=0080ff\" alt=\"repo-language-count\"\u003e\n\u003cp\u003e\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eDeveloped with the software and tools below.\u003c/em\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/ESLint-4B32C3.svg?style=flat\u0026logo=ESLint\u0026logoColor=white\" alt=\"ESLint\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6.svg?style=flat\u0026logo=TypeScript\u0026logoColor=white\" alt=\"TypeScript\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Prisma-2D3748.svg?style=flat\u0026logo=Prisma\u0026logoColor=white\" alt=\"Prisma\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Docker-2496ED.svg?style=flat\u0026logo=Docker\u0026logoColor=white\" alt=\"Docker\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Node.js-339933.svg?style=flat\u0026logo=Node.js\u0026logoColor=white\" alt=\"Node.js\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Zod-000000.svg?style=flat\u0026logo=Zod\u0026logoColor=white\" alt=\"Zod\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Prettier-F7B93E.svg?style=flat\u0026logo=Prettier\u0026logoColor=white\" alt=\"Prettier\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Swagger-85EA2D.svg?style=flat\u0026logo=Swagger\u0026logoColor=black\" alt=\"Swagger\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/OpenAPI-6BA539.svg?style=flat\u0026logo=OpenAPI-Initiative\u0026logoColor=white\" alt=\"OpenAPI\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Amazon_S3-569A31.svg?style=flat\u0026logo=Amazon-S3\u0026logoColor=white\" alt=\"AWS S3\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/nestjs-E0234E?style=flat\u0026logo=nestjs\u0026logoColor=white\" alt=\"Nest.js\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-316192?style=flat\u0026logo=postgresql\u0026logoColor=white\" alt=\"PostgreSQL\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/redis-%23DD0031.svg?style=flat\u0026logo=redis\u0026logoColor=white\" alt=\"Redis\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/JWT-000000?style=flat\u0026logo=JSON%20web%20tokens\u0026logoColor=white\" alt=\"JWT\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/Stripe-008CDD?style=flat\u0026logo=stripe\u0026logoColor=white\" alt=\"Stripe\"\u003e\n\u003c/p\u003e\n\u003chr\u003e\n\n## 🔗 Quick Links\n\n\u003e - [📋 Overview](#-overview)\n\u003e - [🚀 Tech Stack](#-tech-stack)\n\u003e - [🗄️ Database Schema](#️-database-schema)\n\u003e - [💻 Getting Started](#-getting-started)\n\u003e     - [⚙️ Installation](#️-installation)\n\u003e     - [🕜 Running UEvent Backend](#-running-uevent-be)\n\u003e - [📜 Swagger Documentation](#-swagger-documentation)\n\u003e - [🤝 Contributing](#-contributing)\n\u003e - [📄 License](#-license)\n\n---\n\n## 📋 Overview\n\nUEvent is a comprehensive event sharing platform API built with Nest.js and TypeScript. It provides robust functionality for managing companies, events, tickets, user interactions, and payments in a scalable and secure manner. The platform enables users to create and manage events, purchase tickets, interact through comments and reactions, and receive notifications about relevant updates.\n\n---\n\n## 🚀 Tech Stack\n\n- **Core**: [TypeScript](https://www.typescriptlang.org/), [Nest.js](https://nestjs.com/)\n- **Database**: [PostgreSQL](https://www.postgresql.org/), [Prisma ORM](https://www.prisma.io/)\n- **Caching**: [Redis](https://redis.io/)\n- **Authentication**: [JWT](https://jwt.io/), [bcryptjs](https://www.npmjs.com/package/bcryptjs), [Google OAuth](https://developers.google.com/identity/protocols/oauth2)\n- **Storage**: [AWS S3](https://aws.amazon.com/s3/)\n- **Email**: [React-email](https://react.email/), [Nodemailer](https://nodemailer.com/)\n- **Validation**: [class-validator](https://github.com/typestack/class-validator), [class-transformer](https://github.com/typestack/class-transformer), [zod](https://zod.dev/)\n- **Payments**: [Stripe](https://stripe.com/)\n- **Security**: [helmet](https://helmetjs.github.io/)\n- **Documentation**: [Swagger](https://swagger.io/)\n- **Development**: [ESLint](https://eslint.org/), [Prettier](https://prettier.io/)\n- **Containerization**: [Docker](https://www.docker.com/)\n\n---\n\n## 🗄️ Database Schema\n\nThe database schema is defined using Prisma and includes the following main entities:\n\n- **Users**: Authentication, profiles, and user settings\n- **Companies**: Event organizers with location and verification\n- **Events**: Event details, location, pricing, and attendee management\n- **Tickets**: Purchased tickets for events\n- **Comments**: User comments on events and company news\n- **Reactions**: User reactions to comments and news\n- **Notifications**: System notifications for users\n- **Payments**: Payment records for ticket purchases\n\n---\n\n## 💻 Getting Started\n\n### ⚙️ Installation\n\n1. Clone the UEvent Backend repository:\n\n```sh\ngit clone https://github.com/mkloz/uevent-backend.git\n```\n\n2. Change to the project directory:\n\n```shellscript\ncd uevent-backend\n```\n\n3. Install the dependencies:\n\n```shellscript\nnpm install\n```\n\n4. Create a `.env` file in the root directory with the following variables:\n\n```plaintext\n# App\nPORT=3000\nNODE_ENV=development\nSERVER_URL=http://localhost:3000\nCLIENT_URL=http://localhost:5173\nTHROTTLE_TTL=10\nTHROTTLE_LIMIT=200\n\n# Database\nDB_URL=postgresql://postgres:password@localhost:5432/uevent?schema=public\nDB_USER=postgres\nDB_PASS=password\nDB_NAME=uevent\nDB_PORT=5432\n\n# JWT\nJWT_ACCESS_TOKEN_SECRET=your_access_token_secret\nJWT_ACCESS_TOKEN_TIME=15m\nJWT_REFRESH_TOKEN_SECRET=your_refresh_token_secret\nJWT_REFRESH_TOKEN_TIME=14d\n\n# Mail\nMAIL_PORT=465\nMAIL_HOST=smtp.example.com\nMAIL_AUTH_USER=user@example.com\nMAIL_AUTH_PASS=password\nMAIL_FROM_NAME=UEvent\nMAIL_FROM_ADDRESS=noreply@uevent.com\nMAIL_TOKEN_TIME=20m\nMAIL_TOKEN_SECRET=your_mail_token_secret\n\n# Redis\nREDIS_PORT=6379\nREDIS_HOST=localhost\nREDIS_PASS=password\nREDIS_USER=default\nREDIS_ROOT_PASS=root_password\n\n# AWS S3\nAWS_S3_REGION=your_region\nAWS_S3_ACCESS_KEY_ID=your_access_key\nAWS_S3_SECRET_ACCESS_KEY=your_secret_key\nAWS_PUBLIC_BUCKET_NAME=your_bucket_name\n\n# Google Auth\nAUTH_GOOGLE_APP_ID=your_google_app_id\nAUTH_GOOGLE_APP_SECRET=your_google_app_secret\nAUTH_GOOGLE_CALLBACK=your_callback_url\n\n# Stripe\nSTRIPE_SECRET_KEY=your_stripe_secret_key\nSTRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret\n```\n\n5. Initialize the database:\n\n```shellscript\nnpx prisma migrate dev\n```\n\n### 🕜 Running UEvent Backend\n\n1. Start the required services using Docker:\n\n```shellscript\ndocker-compose up -d\n```\n\n2. Run the application in development mode:\n\n```shellscript\nnpm run start:dev\n```\n\nFor production:\n\n```shellscript\nnpm run build\nnpm run start:prod\n```\n\n---\n\n## 📜 Swagger Documentation\n\nTo view the Swagger documentation for the UEvent API, follow these steps:\n\n1. Ensure the UEvent Backend application is running.\n2. Open your web browser and navigate to `http://localhost:6969/api/docs`.\n\nThis will open the Swagger UI, where you can explore and test the API endpoints interactively.\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Here are several ways you can contribute:\n\n- **Submit Pull Requests**: Review open PRs, and submit your own PRs.\n- **Report Issues**: Submit bugs found or log feature requests for UEvent Backend.\n\n\u003cdetails\u003e\u003csummary\u003eContributing Guidelines\u003c/summary\u003e\n\n1. **Fork the Repository**: Start by forking the project repository to your GitHub account.\n2. **Clone Locally**: Clone the forked repository to your local machine using a Git client.\n\n```shellscript\ngit clone https://github.com/mkloz/uevent-backend\n```\n\n3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.\n\n```shellscript\ngit checkout -b new-feature-x\n```\n\n4. **Make Your Changes**: Develop and test your changes locally.\n5. **Commit Your Changes**: Commit with a clear message describing your updates.\n\n```shellscript\ngit commit -m 'Implemented new feature x.'\n```\n\n6. **Push to GitHub**: Push the changes to your forked repository.\n\n```shellscript\ngit push origin new-feature-x\n```\n\n7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations.\n\nOnce your PR is reviewed and approved, it will be merged into the main branch.\n\n\u003c/details\u003e\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/mkloz/uevent-backend/blob/main/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkloz%2Fuevent-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkloz%2Fuevent-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkloz%2Fuevent-backend/lists"}