{"id":24539613,"url":"https://github.com/wil-jsdev/metabond-backend","last_synced_at":"2025-10-09T06:05:35.426Z","repository":{"id":272374559,"uuid":"915830993","full_name":"Wil-JsDev/MetaBond-Backend","owner":"Wil-JsDev","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-10T19:29:55.000Z","size":383,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T20:42:10.577Z","etag":null,"topics":["asp-net-core","docker","postgresql","social-media"],"latest_commit_sha":null,"homepage":"","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/Wil-JsDev.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-01-12T22:53:40.000Z","updated_at":"2025-03-31T14:34:45.000Z","dependencies_parsed_at":"2025-02-16T15:22:36.535Z","dependency_job_id":"4ca64f0c-84d9-4616-94f6-a7053a05765c","html_url":"https://github.com/Wil-JsDev/MetaBond-Backend","commit_stats":null,"previous_names":["wil-jsdev/metabond-backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wil-JsDev%2FMetaBond-Backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wil-JsDev%2FMetaBond-Backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wil-JsDev%2FMetaBond-Backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wil-JsDev%2FMetaBond-Backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wil-JsDev","download_url":"https://codeload.github.com/Wil-JsDev/MetaBond-Backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249017987,"owners_count":21199078,"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","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":["asp-net-core","docker","postgresql","social-media"],"created_at":"2025-01-22T17:15:05.169Z","updated_at":"2025-10-09T06:05:35.421Z","avatar_url":"https://github.com/Wil-JsDev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MetaBond API 🌐\n\n[![.NET](https://img.shields.io/badge/.NET-8.0-512BD4?style=flat-square\u0026logo=dotnet)](https://dotnet.microsoft.com/)\n[![C#](https://img.shields.io/badge/C%23-12.0-239120?style=flat-square\u0026logo=c-sharp)](https://docs.microsoft.com/en-us/dotnet/csharp/)\n[![Railway](https://img.shields.io/badge/Deployed%20on-Railway-0B0D0E?style=flat-square\u0026logo=railway)](https://railway.app/)\n\n## 📝 Description\n\nMetaBond is a **modern social platform API** designed to build communities where users connect not only with people but\nalso with **goals, interests, and specific projects**.\n\nUsers can create or join communities based on common objectives such as:\n\n- 🎓 Learning new skills (languages, programming, etc.)\n- 🚀 Developing startups and business ventures\n- 🎉 Organizing events and social activities\n- 💪 Fitness and wellness goals\n- 🎨 Creative projects and collaborations\n\nThe platform enhances user interaction through **gamification tools**, real-time features, and intelligent resource\nmatching.\n\n## ✨ Key Features\n\n### 🏘️ Community Management\n\n- Create and manage communities with category-based organization\n- Community discovery through interests and categories\n- Member management and role-based permissions\n- Community analytics and insights\n\n### 📅 Event Planning\n\n- Create and manage community events\n- Event categorization and filtering\n- RSVP management and attendee tracking\n- Event discovery and recommendations\n\n### 👤 User Interests \u0026 Categories\n\n- Interest-based user profiling\n- Category management for communities and interests\n- Smart matching algorithms\n- Personalized content recommendations\n\n### 📊 Progress Tracking\n\n- Goal-oriented progress boards\n- Achievement tracking and milestones\n- Gamification elements\n- Personal and community metrics\n\n### 💬 Social Features\n\n- User-generated posts within communities\n- Community membership management\n- Social interactions and engagement tools\n\n## 🛠️ Technology Stack\n\n### Backend Framework\n\n- **Framework**: .NET 8.0\n- **Language**: C# 12.0\n- **Architecture**: Clean Architecture + CQRS Pattern\n\n### Data \u0026 Persistence\n\n- **ORM**: Entity Framework Core\n- **Database**: PostgreSQL + PgAdmin\n- **Migrations**: EF Core Migrations\n\n### API \u0026 Documentation\n\n- **API Style**: RESTful Web API\n- **Documentation**: Swagger/OpenAPI 3.0\n- **Versioning**: API versioning support (v1)\n\n### Validation \u0026 Testing\n\n- **Validation**: FluentValidation\n- **Testing Framework**: xUnit\n- **Test Types**: Unit Tests, Integration Tests\n\n### Architecture Patterns\n\n- **Dependency Injection**: Built-in .NET DI Container\n- **CQRS**: Command Query Responsibility Segregation\n- **Repository Pattern**: Data access abstraction\n- **Result Pattern**: Error handling and response wrapping\n- **Mediator Pattern**: MediatR for request handling\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- .NET 8.0 SDK\n- SQL Server (LocalDB or full instance)\n- Visual Studio 2022 or VS Code\n- Git\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone [repository-url]\n   cd MetaBond-Backend\n   ```\n\n2. **Restore dependencies**\n   ```bash\n   dotnet restore\n   ```\n\n3. **Update database connection string**\n   ```bash\n   cp .env.template .env\n   # Edit .env file with your database connection string\n   ```\n\n4. **Run database migrations**\n   ```bash\n   dotnet ef database update --project MetaBond.Infrastructure.Persistence\n   ```\n\n5. **Run the application**\n   ```bash\n   dotnet run --project MetaBond.Presentation.Api\n   ```\n\n6. **Access the API**\n    - API: `https://localhost:7001`\n    - Swagger UI: `https://localhost:7001/swagger`\n\n### Using Docker\n\n1. **Run Docker Compose**\n   ```bash\n   docker-compose up\n   ```\n\n## 📋 API Endpoints\n\n### Communities\n\n- `GET /api/v1/communities` - Get paginated communities\n- `POST /api/v1/communities` - Create new community\n- `GET /api/v1/communities/{id}` - Get community by ID\n- `PUT /api/v1/communities/{id}` - Update community\n- `DELETE /api/v1/communities/{id}` - Delete community\n- `GET /api/v1/communities/category/{categoryId}` - Get communities by category\n\n*For complete API documentation, visit `/swagger` when running the application.*\n\n## 🧪 Testing\n\n### Run all tests\n\n```bash\ndotnet test\n```\n\n### Run specific test project\n\n```bash\ndotnet test MetaBond.Tests\n```\n\n### Test coverage\n\n```bash\ndotnet test --collect:\"XPlat Code Coverage\"\n```\n\n## 📁 Project Structure\n\nFor detailed information about the project architecture, see [ARCHITECTURE.md](./ARCHITECTURE.md)\n\n```\nMetaBond-Backend/\n├── 📂 MetaBond.Domain/                    # Business entities and rules\n├── 📂 MetaBond.Application/               # Business logic and use cases\n├── 📂 MetaBond.Infrastructure.Persistence/ # Data access implementations\n├── 📂 MetaBond.Infrastructure.Shared/     # Shared services and utilities\n├── 📂 MetaBond.Presentation.Api/          # Web API controllers and configuration\n├── 📂 MetaBond.Tests/                     # Test suites\n├── 🐳 docker-compose.yml                 # Docker configuration\n├── 📄 .env.template                      # Environment variables template\n└── 📖 ARCHITECTURE.md                    # Detailed architecture documentation\n```\n\n## 🚀 Deployment\n\n### Railway (Current)\n\nThe backend is currently deployed on **Railway** with automatic deployments from the main branch.\n\n- **Production URL**: [Production Railway URL]\n- **Swagger Documentation**: [Production URL]/swagger\n\n### Alternative Deployment Options\n\n- **Azure App Service**: Recommended for enterprise deployments\n- **AWS ECS/Fargate**: For containerized deployments\n- **Docker**: Self-hosted with Docker Compose\n- **Kubernetes**: For large-scale deployments\n\n## Development Status\n\n- [x] Community Management System\n- [x] Event Management System\n- [x] Category-based Organization\n- [x] Interest Management\n- [x] API Documentation\n- [x] Unit Testing Framework\n- [ ] Authentication \u0026 Authorization (In Progress)\n- [ ] Real-time Features (Planned)\n- [ ] Gamification System (Planned)\n- [ ] Notification System (Planned)\n\n---\n\n**Built with ❤️ using .NET 8 and Clean Architecture principles**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwil-jsdev%2Fmetabond-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwil-jsdev%2Fmetabond-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwil-jsdev%2Fmetabond-backend/lists"}