{"id":21984566,"url":"https://github.com/lee-stevens/clapham-zoo","last_synced_at":"2026-04-16T19:09:32.426Z","repository":{"id":61821868,"uuid":"555347807","full_name":"lee-stevens/Clapham-Zoo","owner":"lee-stevens","description":"Angular ASP.NET - First project in Stack","archived":false,"fork":false,"pushed_at":"2023-02-16T22:51:23.000Z","size":584,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T05:13:05.605Z","etag":null,"topics":["angular","asp-net","entity-framework","entity-framework-core","mvc","sqlite"],"latest_commit_sha":null,"homepage":"","language":"C#","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/lee-stevens.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":"2022-10-21T12:02:55.000Z","updated_at":"2024-09-27T13:34:46.000Z","dependencies_parsed_at":"2023-02-18T20:00:22.757Z","dependency_job_id":null,"html_url":"https://github.com/lee-stevens/Clapham-Zoo","commit_stats":null,"previous_names":["metal-mantis-studio/clapham-zoo","lee-stevens/clapham-zoo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lee-stevens%2FClapham-Zoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lee-stevens%2FClapham-Zoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lee-stevens%2FClapham-Zoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lee-stevens%2FClapham-Zoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lee-stevens","download_url":"https://codeload.github.com/lee-stevens/Clapham-Zoo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245044493,"owners_count":20551898,"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":["angular","asp-net","entity-framework","entity-framework-core","mvc","sqlite"],"created_at":"2024-11-29T18:10:03.289Z","updated_at":"2026-04-16T19:09:32.327Z","avatar_url":"https://github.com/lee-stevens.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to the Clapham Zoo repository!\n\nTable of Contents\n\n| Sections      | Title                   |\n| :-:           | :-                      | \n| 1             | Design Document         |\n| 2             | Technical Specifcation  | \n| 3             | Installation Guide      |\n\n# 1] Design Document\n\n[Figma Board](https://www.figma.com/file/ePMEytK5OL7HIHJGDkyXym/Clapham-Zoo?t=kaElhZpqlkEO3UnB-6)\n\nA zoo management SPA for zoo visitors to book a visit or view the animals and posts, and for zoo staff to manage all animals, create posts and manage bookings. This is a personal project, not a real app.\n\n\n## Functionality\n\n    Visitor\n    - Create an account\n    - Manage their account\n    - Create a booking\n    - Ammend or cancel booking\n    - View all public animals\n    - View all public posts\n\n    Staff\n    - Manage bookings\n    - Manage all animals\n    - Create posts\n\n    Staff Admin\n    - Manage all accounts\n    - Manage all animals\n\n## Pages\n\n| Page \u0026 Components       | User              | Description |\n| :-                      | :-                | :-          |\n| Homepage                | Staff, Visitor    | Welcome page to the application |\n| Staff Dashboard         | Staff             | Dashboard for staff |\n| account-creator         | Anonymous, Admin  | Create an account |\n| account-manager         | All               | Manage this account |\n| account-manager-admin   | Admin             | Manage all accounts |\n| booking-creator         | Everyone          | Create a booking |\n| booking-manager         | Everyone          | Manage a booking |\n| navbar                  | Everyone          | Navigation to all pages |\n| footer                  | Everyone          | General links \u0026 contact etc... |\n\n# 2] Technical Specification\n\nI am Following the course \"Build an app with ASPNET Core and Angular from scratch\" from [Udemy](https://www.udemy.com/course/build-an-app-with-aspnet-core-and-angular-from-scratch/).\n\nIt uses a ASP.NET's MVC, for joining the Angular frontend with the ASP.NET SQLite backend. \n\n## Tools Used\n\n- Angular CLI 14.1.1\n- Node 16.18.1\n- npm 9.1.2\n- .NETCore 6.0.11\n- TypeScript 4.8.4\n- win32 x64\n\n## Skills involved\n\n1. ASP.NET v2.1\n2. Angular v14\n3. Entity Framework Core\n4. Postman - API Platform\n5. SCSS\n\n## VS Code Extentions\n\n* C#\n* C# Extentions\n* NuGet Gallery\n* SQlite\n\n## Packages\n\n  `Microsoft.EntityFrameworkCore.Sqlite` | Entity Framework SQLite for API\n\n  `Microsoft.EntityFrameworkCore.Design` | Entity Framework Design for API ef migrations\n\n```console\n`dotnet tool install --global dotnet-ef --version 7.0.0-rc.2.22472.11`\ndotnet-ef for API (Get the version to match your .NET Core version)\n\n`dotnet new gitignore` | Gitignore specific to dotnet\n\n`dotnet dev-certs https --trust\n```\n\n# 3] Installation Guide\n\n1. npm install\n\n2. Create a folder 'ssl' in the root folder and place your computer's certificate and key\n\nserver.crt\n```CRT\n-----BEGIN CERTIFICATE-----\n\nYOUR CERTIFICATE GOES HERE\n\n-----END CERTIFICATE-----\n```\n\nserver.key\n```key\n-----BEGIN PRIVATE KEY-----\n\nYOUR KEY GOES HERE\n\n-----END PRIVATE KEY-----\n\n```\n\n3. Create an environments folder with two files, `environment.prod.ts` and `environment.ts`\n\n```TS\nexport const environment = {\n  production: false, //true for prod.ts\n};\n```\n\n\n# 4] Useful Items\n## CLI Commands\n\n```console\n\u003e\u003edotnet run\n\n\u003e\u003edotnet watch run\n//\n\n\u003e\u003edotnet ef migrations add InitialCreate -o Data/Migrations \n//Migrate current C# code into SQL schemas with the name 'InitialCreate'\n\n\u003e\u003edotnet ef database update\n//Creates/updates a database                  \n\n\u003e\u003edotnet ef migrations add NewName\n//Creates a new migration for any new changes to the entity framework schema          \n\n\u003e\u003edotnet ef database update\n//Updates the existing database with the new migration schema\n```\n\n## Key learning points\n\nTrust ASP.NET Http certification\n\n```console\ndotnet dev-certs https --trust\n```\n\nSSL Certificate created and applied, it's on .gitignore\n\nProtected: This class or any classes which inherit this class can access this variable\n\nPrivate: Only this class can access this variable\n\n## Angular\n\n## ASP.NET\n\n```console\nprop //Generates a property boilterplate\n```\n\n## SQL\n\nThis course uses SQLite which stores the database in a local file, it is only for \u003ci\u003edeveloment\u003ci/\u003e purposes\n\n## Entity Framework | Microsoft\n\nAn Object Relational Mapper (ORM) which translates code into SQL for our tables in the database. (Creates schemas)\n\n```console\nDbContext.Users.Add(new User {Id = 4, Name = Lee})  //Input\n\nINSERT INTO Users(Id, Name) VALUES(4, Lee)          //Ouput\n```\n* Querying\n* Change Tracking\n* Saving\n* Concurrency\n* Transactions\n* Caching\n* Built-in conventions\n* Migrations\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flee-stevens%2Fclapham-zoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flee-stevens%2Fclapham-zoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flee-stevens%2Fclapham-zoo/lists"}