{"id":21668465,"url":"https://github.com/blendereru/DormGO","last_synced_at":"2025-10-06T22:31:47.075Z","repository":{"id":263039573,"uuid":"889112646","full_name":"blendereru/DormGO","owner":"blendereru","description":"Gather up and divide money for comfortable transport","archived":false,"fork":false,"pushed_at":"2025-06-16T17:27:26.000Z","size":2502,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-18T01:33:52.240Z","etag":null,"topics":["api","asp-net-core","hub","jwt","refresh-token","signalr","token-based-authentication"],"latest_commit_sha":null,"homepage":"https://dormgo.azurewebsites.net","language":"C#","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/blendereru.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-15T16:26:09.000Z","updated_at":"2025-06-16T17:27:29.000Z","dependencies_parsed_at":"2024-11-15T19:24:12.058Z","dependency_job_id":"720a5073-2187-46db-ad0e-f86de76cb7f8","html_url":"https://github.com/blendereru/DormGO","commit_stats":null,"previous_names":["blendereru/loginform","blendereru/dormgo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/blendereru/DormGO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blendereru%2FDormGO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blendereru%2FDormGO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blendereru%2FDormGO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blendereru%2FDormGO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blendereru","download_url":"https://codeload.github.com/blendereru/DormGO/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blendereru%2FDormGO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278690974,"owners_count":26029171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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":["api","asp-net-core","hub","jwt","refresh-token","signalr","token-based-authentication"],"created_at":"2024-11-25T12:16:01.071Z","updated_at":"2025-10-06T22:31:47.069Z","avatar_url":"https://github.com/blendereru.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DormGO Server\n\nDormGO Server is the backend API for DormGO, which powers a mobile application that helps users save on transportation costs by connecting people traveling to the same destination. Users can coordinate and share rides by subscribing to posts, allowing them to split expenses and make travel more affordable and convenient.\n\nThis repository contains only the server-side (.NET) code.\n\n## Features\n\n- User authentication \u0026 registration (ASP.NET Identity, JWT)\n- Manage posts through CRUD operations\n- Booking/reservation management\n- Real-time notifications \u0026 chat (SignalR hubs)\n- Search/filter for posts\n- Admin endpoints\n- API documentation (Swagger)\n- Email notifications\n- Logging with Serilog\n\n## Tech Stack\n\n- **.NET 8 / ASP.NET Core**\n- **Entity Framework Core** (SQL Server)\n- **SignalR** (real-time communication)\n- **Serilog** (logging)\n- **Swagger** (API docs)\n- **Mapster** (DTO mappings)\n- **JWT** authentication\n\n## Project Structure\n\n```\n/DormGO\n  /Controllers        # API controllers\n  /Models             # Entity/data models\n  /Data               # DbContext and migrations\n  /DTOs               # Data transfer objects\n  /Services           # Business logic \u0026 notification services\n  /Hubs               # SignalR hubs (real-time)\n  /Filters            # Custom filters (e.g. user email validation)\n  /Mappings           # Mapster config for DTOs\n  /Constants          # Auth and config constants\n  Program.cs          # Main entry point\n  appsettings.json    # Configuration\n  README.md           # This file\n```\n\n## Getting Started\n\n### Prerequisites\n\n- [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download)\n- SQL Server (or Azure SQL)\n\n### Setup\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/blendereru/DormGO.git\n   cd DormGO\n   ```\n2. **Configure Environment:**\n    - Copy `appsettings.json` and set your connection strings and secrets.\n    - Optionally use environment variables for sensitive values.\n3. **Run the Server:**\n   ```bash\n   dotnet run\n   ```\n   The API will start on `http://localhost:5093` by default.\n\n## Running with Docker Compose\n\n1. **Edit Environment Variables:**\n    - Replace `\u003cyour_password\u003e` in `compose.yaml` under the `MSSQL_SA_PASSWORD` variable for the `db` service.\n    - Ensure your app's connection string (in `appsettings.json` or as an environment variable) matches the database service:\n      ```\n      Server=db,1433;Database=YOUR_DB_NAME;User Id=sa;Password=YOUR_PASSWORD;\n      ```\n    - (Optional) Set any other required secrets or configuration via your environment or override files.\n2. **Build and start all services:**\n   ```bash\n   docker compose up --build\n   ```\n    - The API will be accessible at `http://localhost` (port 80) and `http://localhost:8080`.\n    - Seq logging UI will be available at `http://localhost:8081`.\n    - SQL Server will be available at `localhost:8002` for development tools.\n3. **Stopping the services:**\n   ```bash\n   docker compose down\n   ```\n\n### Service Overview\n\n- **app**: The DormGO backend API (.NET)  \n  Exposes ports 80 and 8080 (adjust as needed).\n- **db**: Microsoft SQL Server 2022  \n  Accessible on port 8002 (host) → 1433 (container).  \n  Default user: `sa`, password: set by `MSSQL_SA_PASSWORD`.\n- **seq**: [Seq](https://datalust.co/seq) (structured log UI for Serilog)  \n  Accessible at http://localhost:8081.\n\n**Example connection string for the app (in `appsettings.json`):**\n```json\n\"ConnectionStrings\": {\n  \"IdentityConnection\": \"Server=db,1433;Database=DormGO;User Id=sa;Password=YOUR_PASSWORD;\"\n}\n```\n**Tip:**\n- For production, always use strong secrets and manage them securely.\n- You may use the `.env` file to inject environment variables into your containers.\n\n## API Overview\n\n- Full Swagger UI at `/swagger`\n- Example endpoints:\n    - `POST /api/signin` — Login\n    - `POST /api/signup` — Register\n    - `GET /api/posts` — List posts created by users\n    - `POST /api/posts` — Add a post (specify price per user and maximum capacity)\n    - `GET /api/posts/{id}/messages` — List all messages sent by post's members\n    - SignalR hubs: `/api/userhub`, `/api/posthub`, `/api/chathub`, `/api/notificationhub`\n\n## Contributing\n\nPull requests are welcome! For major changes, please open an [issue](https://github.com/blendereru/DormGO/issues/new) first to discuss.\n\nThere's also a [discussions](https://github.com/blendereru/DormGO/discussions) section for questions.\n\n## License\n\n[MIT](LICENSE)\n\n## Related\n\n- [DormGO Client](https://github.com/Raimbek-pro/DormGo-ios-client) — Frontend for DormGO","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblendereru%2FDormGO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblendereru%2FDormGO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblendereru%2FDormGO/lists"}