{"id":26022744,"url":"https://github.com/primaryobjects/follow","last_synced_at":"2026-04-16T05:31:33.802Z","repository":{"id":280899128,"uuid":"943542455","full_name":"primaryobjects/follow","owner":"primaryobjects","description":"A web application for displaying users and their followers, developed in ASP .NET Core Web API and Angular.","archived":false,"fork":false,"pushed_at":"2025-03-07T03:42:46.000Z","size":289,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-22T14:45:50.944Z","etag":null,"topics":["angular","angular2","angularjs","asp-net","asp-net-core","aspnetcore","csharp","entity-framework-core","material-design","sqlite","typescript"],"latest_commit_sha":null,"homepage":"","language":"HTML","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,"zenodo":null}},"created_at":"2025-03-05T21:54:25.000Z","updated_at":"2025-03-08T12:17:08.000Z","dependencies_parsed_at":"2025-03-05T23:19:08.953Z","dependency_job_id":"3616425f-e0ad-4349-8d49-1791178dc4c2","html_url":"https://github.com/primaryobjects/follow","commit_stats":null,"previous_names":["primaryobjects/follow"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/primaryobjects/follow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Ffollow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Ffollow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Ffollow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Ffollow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/primaryobjects","download_url":"https://codeload.github.com/primaryobjects/follow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/primaryobjects%2Ffollow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31872616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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":["angular","angular2","angularjs","asp-net","asp-net-core","aspnetcore","csharp","entity-framework-core","material-design","sqlite","typescript"],"created_at":"2025-03-06T10:19:15.423Z","updated_at":"2026-04-16T05:31:33.772Z","avatar_url":"https://github.com/primaryobjects.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Followers\n\nA tutorial project for displaying users and their followers, developed in ASP .NET Core Web API and Angular.\n\n![screenshot](screenshot.gif)\n\n## Summary\n\nThis project demonstrates creating a full-stack web application using ASP .NET Core Web API for the backend service with Angular and Material Design for the frontend client. The application displays an SQLite database of people and their followers. A person can follow another person, which is displayed upon selecting a name from the list.\n\n## Quick Start\n\nAfter the initial setup steps below, you can run the VS Code command **Run server and client**.\n\n### Prerequisites\n- .NET 6.0 SDK or later\n- Angular CLI\n\n### Backend Setup\n\n1. Navigate to the backend project directory:\n    ```sh\n    cd /Service\n    ```\n2. Create a file `/Service/.env` with the following contents.\n    ```\n    ConnectionString=\"Data Source=data.sqlite;\"\n    ```\n3. Restore the dependencies:\n    ```sh\n    dotnet restore\n    ```\n4. Run the backend service:\n    ```sh\n    dotnet run\n    ```\n5. Open your browser and navigate to the Swagger API explorer `http://localhost:5122/swagger`.\n\n### Frontend Setup\n1. Navigate to the frontend project directory:\n    ```sh\n    cd /Client\n    ```\n2. Install the dependencies:\n    ```sh\n    npm install\n    ```\n3. Run the frontend application:\n    ```sh\n    ng serve\n    ```\n4. Open your browser and navigate to `http://localhost:4200`.\n\n## API Methods\n\n### Get All Followers\n- **Endpoint:** `GET /api/follower`\n- **Description:** Retrieves a list of all followers.\n- **Parameters:** `includeDetails` (optional) - boolean to include detailed information.\n\n### Get Followers by Person ID\n- **Endpoint:** `GET /api/follower/{personId}`\n- **Description:** Retrieves a list of followers for a specific person.\n- **Parameters:** `personId` - GUID of the person.\n\n### Add a Follower\n- **Endpoint:** `POST /api/follower`\n- **Description:** Adds a new follower.\n- **Body:**\n    ```json\n    {\n        \"followerId\": \"GUID\",\n        \"followeeId\": \"GUID\"\n    }\n    ```\n\n### Remove a Follower\n- **Endpoint:** `DELETE /api/follower/{id}`\n- **Description:** Removes a follower by ID.\n- **Parameters:** `id` - GUID of the follower.\n\n### Get All People\n- **Endpoint:** `GET /api/person`\n- **Description:** Retrieves a list of all people.\n- **Parameters:** `id` - GUID of the follower.\n\n### Get Person by ID\n- **Endpoint:** `GET /api/person/{id}`\n- **Description:** Retrieves a person by id.\n- **Parameters:** `id` - GUID of the person.\n\n### Add a Person\n- **Endpoint:** `POST /api/person`\n- **Description:** Adds a new person.\n- **Body:**\n    ```json\n    {\n    \"id\": \"GUID\",\n    \"createDate\": \"2025-03-05T22:02:08.711Z\",\n    \"firstName\": \"Alice\",\n    \"lastName\": \"Doe\"\n    }\n    ```\n\n## Deployment\n\nTo build a deployment for hosting on a web server, run the VS Code command **Publish** or use the following steps.\n\n1. In Visual Studio Code, open a terminal and run the following commands.\n    ```\n    cd service\n    dotnet build\n    dotnet publish -c Release -o ./publish\n    ```\n2. Build the Angular client using the following command.\n    ```\n    cd ..\n    cd client\n    ng build\n    ```\n3. Copy the database file `Service/data.sqlite` into `/publish`.\n4. Copy the file `Service/.env` into `/publish`. This file should contain the following line: `ConnectionString=\"Data Source=data.sqlite;\"`  *Note, when deploying to a web host these values can be stored in environment variables instead of the file.*\n5. Copy the files `Client/dist/client/browser/*.*` into `/publish/wwwroot`.\n6. Run the executable `/publish/follow.exe`\n\nThe web application will begin running on port 5000. The executable is a self-contained web server, similar to a node.js application, and may be deployed to a Windows web server or Microsoft Azure.\n\n## Tech-Stack\n- **Backend:** ASP .NET Core Web API, Entity Framework, SQLite\n- **Frontend:** TypeScript, Angular, Material Design\n\n## License\n\nMIT\n\n## Author\n\nKory Becker\nhttps://primaryobjects.com","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimaryobjects%2Ffollow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprimaryobjects%2Ffollow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprimaryobjects%2Ffollow/lists"}