{"id":27100589,"url":"https://github.com/primaryobjects/docker-monster","last_synced_at":"2026-04-06T08:01:37.505Z","repository":{"id":286371179,"uuid":"961175968","full_name":"primaryobjects/docker-monster","owner":"primaryobjects","description":"Monster generator using a Docker container with ASP .NET Core Web API and Angular.","archived":false,"fork":false,"pushed_at":"2025-04-06T15:12:38.000Z","size":643,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T21:08:38.780Z","etag":null,"topics":["angular2","container","containerization","csharp","docker","docker-container","dockerfile","dotnet","dotnet-core"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/primaryobjects.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}},"created_at":"2025-04-05T23:16:51.000Z","updated_at":"2025-04-06T15:11:45.000Z","dependencies_parsed_at":"2025-04-09T20:57:04.336Z","dependency_job_id":"0f0e5132-45c1-49f3-af60-8cfabc17958f","html_url":"https://github.com/primaryobjects/docker-monster","commit_stats":null,"previous_names":["primaryobjects/docker-monster"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/primaryobjects/docker-monster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Fdocker-monster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Fdocker-monster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Fdocker-monster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Fdocker-monster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/primaryobjects","download_url":"https://codeload.github.com/primaryobjects/docker-monster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Fdocker-monster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31464102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"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":["angular2","container","containerization","csharp","docker","docker-container","dockerfile","dotnet","dotnet-core"],"created_at":"2025-04-06T13:20:00.818Z","updated_at":"2026-04-06T08:01:37.477Z","avatar_url":"https://github.com/primaryobjects.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Monster Service with Docker\n\nA full-stack application that includes an **ASP.NET Core Web API** for managing monsters and an **Angular client** for interacting with the API. The application uses an in-memory database for data storage and is containerized using Docker.\n\n![screenshot](screenshot.gif)\n\n## Quick Start\n\n1. Download [Docker](https://www.docker.com/products/docker-desktop).\n2. Run the container `docker-compose up -d`.\n\n*This will pull the container image from the GitHub Docker Registry.*\n\n## Features\n\n- **ASP.NET Core Web API**:\n  - Endpoints for creating, retrieving, and managing monsters.\n  - In-memory database for lightweight data storage.\n  - Swagger/OpenAPI integration for API documentation.\n\n- **Angular Client**:\n  - User interface for viewing and adding monsters.\n  - Integration with the Web API using `fetch` for HTTP requests.\n  - Bootstrap-based responsive design.\n\n- **Dockerized Deployment**:\n  - Single Docker container for both the API and the Angular client.\n  - Configured to run in production with proper port bindings.\n\n## Prerequisites\n\n- [.NET 6 or later](https://dotnet.microsoft.com/download)\n- [Node.js](https://nodejs.org/) (for the Angular client)\n- [Docker](https://www.docker.com/) (optional, for containerized deployment)\n\n## Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone \u003crepository-url\u003e\ncd MonsterService\n```\n\n### 2. Run the API Locally\n\n1. Navigate to the Service directory:\n    ```bash\n    cd Service\n    ```\n\n2. Run the API:\n    ```bash\n    dotnet run\n    ```\n\n3. The API will be available at http://localhost:5127 (or the port specified in your configuration).\n\n### 3. Run the Angular Client Locally\n\n1. Navigate to the Client directory:\n    ```bash\n    cd Client\n    ```\n\n2. Install dependencies:\n    ```bash\n    npm install\n    ```\n\n3. Run the Angular development server:\n    ```bash\n    ng serve\n    ```\n\n4. The client will be available at http://localhost:4200\n\n### 4. Run the Application with Docker\n\n1. Build the Docker image:\n    ```bash\n    docker build -t monster-service .\n    ```\n\n2. Run the Docker container:\n    ```bash\n    docker run -d -p 8080:80 --name monster-service monster-service\n    ```\n\n3. Access the application at http://localhost:8080\n\n## Building and Publishing Docker Image\n\nAfter making changes to the project, the Docker container can be built and published to the Github Container Registry using the following steps.\n\n```bash\ndocker login --username \u003cUSERNAME\u003e --password \u003cYOUR_PERSONAL_ACCESS_TOKEN\u003e ghcr.io\ndocker build -t ghcr.io/primaryobjects/docker-monster:latest .\ndocker push ghcr.io/primaryobjects/docker-monster:latest\n```\n\n### Running the Docker Image\n\nThe Docker image can be launched using the following command to read `docker-compose.yml`.\n\n```bash\ndocker-compose up -d\n```\n\nAlternatively, manually launch the container.\n\n```bash\ndocker run --name docker-monster-container -d -p 8080:80 ghcr.io/primaryobjects/docker-monster:latest\n```\n\n## API Endpoints\n\nBase URL: `/api/monster`\n\n- GET `/api/monster`: Retrieve all monsters.\n- GET `/api/monster/new`: Generate a new monster.\n- POST `/api/monster`: Add a new monster.\n\n## Technologies Used\n\n- **Backend**: ASP.NET Core, Entity Framework Core (InMemory Database)\n- **Frontend**: Angular, Bootstrap\n- **Containerization**: Docker\n- **API Documentation**: Swagger/OpenAPI\n\n## Project Structure\n\n```text\nMonsterService/\n├── Client/                 # Angular client\n├── Service/                # ASP.NET Core Web API\n│   ├── Controllers/        # API controllers\n│   ├── Database/           # DbContext and database setup\n│   ├── Managers/           # Business logic\n│   ├── Types/              # Entity models\n├── Dockerfile              # Docker configuration\n```\n\n## Future Enhancements\n\n- Add authentication and authorization.\n- Implement persistent database storage (e.g., SQL Server or PostgreSQL).\n- Add unit and integration tests for both the API and the client.\n- Enhance the UI with additional features like monster filtering and sorting.\n\n## License\n\nMIT\n\n## Author\n\nKory Becker\nhttps://primaryobjects.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimaryobjects%2Fdocker-monster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprimaryobjects%2Fdocker-monster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimaryobjects%2Fdocker-monster/lists"}