{"id":26783488,"url":"https://github.com/ozzy-zy/templozz","last_synced_at":"2025-07-05T06:33:01.778Z","repository":{"id":280381136,"uuid":"929419182","full_name":"Ozzy-ZY/TeMplozz","owner":"Ozzy-ZY","description":"A Clean, Layered WebApi Template for .net","archived":false,"fork":false,"pushed_at":"2025-04-01T01:08:27.000Z","size":79,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T18:37:52.783Z","etag":null,"topics":["backend","dotnet","template-project","webapi"],"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/Ozzy-ZY.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-02-08T14:06:56.000Z","updated_at":"2025-04-06T11:40:50.000Z","dependencies_parsed_at":"2025-03-25T23:24:37.907Z","dependency_job_id":"9af1d803-46f7-4a25-b5a7-c7b2cb12f9ce","html_url":"https://github.com/Ozzy-ZY/TeMplozz","commit_stats":null,"previous_names":["ozzy-zy/templozz"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ozzy-ZY/TeMplozz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ozzy-ZY%2FTeMplozz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ozzy-ZY%2FTeMplozz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ozzy-ZY%2FTeMplozz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ozzy-ZY%2FTeMplozz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ozzy-ZY","download_url":"https://codeload.github.com/Ozzy-ZY/TeMplozz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ozzy-ZY%2FTeMplozz/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263696756,"owners_count":23497634,"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":["backend","dotnet","template-project","webapi"],"created_at":"2025-03-29T09:29:47.805Z","updated_at":"2025-07-05T06:33:01.718Z","avatar_url":"https://github.com/Ozzy-ZY.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💀 API TEMPLATE (BUT CHAOTIC) 💀\n\nYO. THIS IS A FREAKIN’ **ASP.NET Core Web API Template**. It’s got layers. It’s got JWT auth. It’s got **file handling**. Basically, it’s BUILT DIFFERENT. 🚀\n\n---\n## 🏗️ ARCHITECTURE (BECAUSE ORGANIZATION MATTERS, OK?)\n\n- **API Layer** – HTTP requests go brrrr 💨\n- **Application Layer** – Business logic happens here, nerd\n- **Domain Layer** – The pure, untouchable core entities\n- **Infrastructure Layer** – Where the database magic lives\n\n---\n## ✨ FEATURES (A.K.A. WHY THIS SLAPS)\n\n- **🔥 Authentication \u0026 Authorization 🔥**\n  - JWTs with refresh token sorcery 🪄\n  - Role-based nonsense (Admin vs Peasant)\n  - Registration \u0026 login because DUH\n  - Change password so you can regret your choices\n  - Google Authentication for the cool kids 🔍\n\n- **📂 File Management**\n  - Upload stuff 📤\n  - Image storage 📸\n  - Configurable like your coffee ☕\n\n- **🛢️ Data Access**\n  - Entity Framework Core (EF Core) because raw SQL is pain\n  - Repositories for that clean, crisp data handling ✨\n  - Unit of Work because transactions exist\n  - Migrations because \"Works on my machine\" isn't good enough\n\n- **🛠️ API Configuration**\n  - DI setup because manual dependency management is suffering\n  - OpenAPI/Swagger docs so people actually use this\n  - Environment-specific configs (yes, PROD and DEV are different)\n\n---\n## 🚀 GETTING STARTED (NOOB GUIDE)\n\n### Prerequisites:\n- .NET 6.0+ (stay up to date, kids)\n- SQL Server (or something compatible, we don’t judge)\n- Visual Studio 2022 or VS Code (pick your poison)\n\n### Installation (FOLLOW THE STEPS OR SUFFER):\n1. **Clone it.**\n   ```sh\n   git clone https://github.com/Ozzy-ZY/api-template.git\n   ```\n2. **Enter the void.**\n   ```sh\n   cd api-template\n   ```\n3. **Configure your secrets (aka database connection).**\n   ```json\n   \"ConnectionStrings\": {\n     \"DefaultConnection\": \"Server=YOUR_SERVER;Database=YOUR_DB;Trusted_Connection=True;MultipleActiveResultSets=true\"\n   }\n   ```\n4. **Summon the database.**\n   ```sh\n   dotnet ef database update\n   ```\n5. **Summon the API overlords.**\n   ```sh\n   dotnet run --project API\n   ```\n6. **Swagger lives here →** `https://localhost:7282/Scalar/v1`\n\n---\n## 📁 PROJECT STRUCTURE (A.K.A. THE BLUEPRINTS)\n\n```\nAPI_Template/\n├── API/\n│   ├── Controllers/ (Here be endpoints 🛑)\n│   │   ├── AuthController.cs (Login, Register, etc.)\n│   │   ├── TestController.cs (Just vibes 🤷‍♂️)\n│   │   └── UserController.cs (User stuff 👤)\n│   ├── wwwroot/\n│   │   └── uploads/ (Where your cursed files go)\n│   ├── appsettings.json (Configs, don’t touch if scared)\n│   └── Program.cs (API bootup magic 🏎️)\n│\n├── Application/\n│   ├── DTOs/ (Data but with ✨ structure ✨)\n│   ├── Services/ (The real work happens here)\n│   └── Validators/ (STOP BAD INPUTS 🚫)\n│\n├── Domain/\n│   ├── Models/ (Entities, aka the data lords)\n│   ├── ModelsConfig/ (Mapping rules because EF Core needs them)\n│\n└── Infrastructure/\n    └── DataAccess/\n        ├── Repositories/ (Data handlers 📦)\n        ├── Migrations/ (DB evolution, survival of the fittest)\n```\n\n---\n## 🔐 AUTH FLOW (FOR THOSE WHO LIKE SECURITY)\n\n1. **Register** – Sign up (yay, new user!)\n   ```http\n   POST /api/auth/RegisterUser\n   ```\n2. **Login** – Get a token, prove you're cool\n   ```http\n   POST /api/auth/loginUser\n   ```\n3. **Google Login** – Let the big G vouch for you 🌐\n   ```http\n   GET /api/googleauth/login\n   ```\n4. **Refresh Token** – Because tokens expire like milk 🥛\n   ```http\n   POST /api/auth/RefreshToken\n   ```\n5. **Change Password** – When you forget your dog's birthday\n   ```http\n   POST /api/auth/Logout\n   ```\n\n---\n## 🛠️ CUSTOMIZATION (BECOME A CODE WIZARD)\n\n### Adding a Controller:\n1. Make a new `.cs` file in `API/Controllers`\n2. Inherit `ControllerBase`\n3. Add `[Route]`, `[HttpGet]`, etc.\n4. Deploy. Dominate. 🚀\n\n### Adding a Model:\n1. Create it in `Domain/Models/`\n2. Config it in `Domain/ModelsConfig/`\n3. Add it to `AppDbContext`\n4. Migrate (`dotnet ef migrations add SomethingCool`)\n\n---\n## 📄 LICENSE (IT'S MIT, DO WHATEVER, JUST DON’T SUE ME)\n\n## 🤝 CONTRIBUTING (WE WANT YOUR CODE)\n\n1. **Fork it.** 📌\n2. **Make a branch.** 🌿\n   ```sh\n   git checkout -b feature/amazing-feature\n   ```\n3. **Commit your masterpiece.** 🎨\n   ```sh\n   git commit -m \"Add some amazing feature\"\n   ```\n4. **Push it real good.** 🚀\n   ```sh\n   git push origin feature/amazing-feature\n   ```\n5. **Open a Pull Request.** 🛠️\n\n---\n\n🔥 **Made with caffeine, sleepless nights, and questionable decisions.** 🔥\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozzy-zy%2Ftemplozz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozzy-zy%2Ftemplozz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozzy-zy%2Ftemplozz/lists"}