-
Since the application uses cloudinary platform for the images, you should create your own account on cloudinary. Please obtain these 3 values:

-
Now you should add those values into your application. Please create appsettings.json in API folder. It should look like this:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"CloudinarySettings": {
"CloudName": "xxx",
"ApiKey": "xxx",
"ApiSecret": "xxx"
}
}
- dotnet restore
- dotnet run
Now you're good to go 😎
Use this repo for downloading: https://github.com/FiloSottile/mkcert?tab=readme-ov-file
Run these 2 commands:
- mkcert --install
- mkcert localhost
Implement the basic API functionality and have an introductory understanding of:
- Using the dotnet CLI
- API Controllers and Endpoints
- Entity Framework
- The API Project structure
- Configuration and Environment variables
- Source Control
Complete the walking skeleton and have an introductory understanding of:
- Using the Angular CLI
- How to create a new Angular app
- The Angular project files
- The Angular bootstrap process
- Using the Angular HTTP Client Service
- Running an Angular app over HTTPS
- How to add packages using NPM
Implement the basic authentication in our app and have an understanding of:
- How to store passwords in the Database
- Using inheritance in C# - DRY (Don't Repeat Yourself)
- Using the C# debugger
- Using Data Transfer Objects (DTOs)
- Validation
- JSON Web Tokens (JWTs)
- Using services in C#
- Middleware
- Extension Methods - DRY (Don't Repeat Yourself)
Implement the login and register functionality into the apps as well as understanding:
- Creating components using the Angular CLI
- Using Angular Template forms
- Using Angular services
- Understanding Observables
- Using Angular structural directives to conditionally display elements on a page
- Component communication from parent to child
- Component communication from child to parent
Implement routing in our Angular app and have an understanding of:
- Angular routing
- Adding a bootstrap theme
- Using Angular route guards
- Using a Shared Module
Implement global error handling in both the API and the Angular application. Also to have an understanding of:
- API Middleware
- Angular Interceptors
- Troubleshooting exceptions
Implement further functionality into our API and gain an understanding of:
- Entity Framework Relationships
- Entity Framework Conventions
- Seeding Data into the Database
- The repository pattern
- Using AutoMapper
Implement the components that make up the user interface in our client application and gain an understanding of:
- Using Typescript types
- Using the async pipe
- Using bootstrap for styling
- Basic css tricks to enhance the look
- Using a 3rd party photo gallery
Implement persistence when updating resources in the API and gaining and understanding of:
- Angular Template forms
- The CanDeactivate Route Guard
- The @ViewChild decorator
- Persisting changes to the API
- Adding loading indicators to the client app
- Caching data in Angular services
Implement photo upload functionality in the application and gain an understanding of the following:
- Photo storage
- Adding related entities
- Using a 3rd party API
- Using the Debugger (again!)
- Updating and deleting resources
- What to return when creating resources in a REST based API
Implement more advanced forms using Reactivce Forms in Angular and understand how to:
- Use Reactive Forms
- Use Angular Validation for inputs
- Implement custom validators
- Implement reusable form controls
- Working with Date inputs
Implement paging, sorting, filtering and gain an understanding of the following:
- How to implement pagination on the API & client
- Deferred Execution using IQueryable
- How to implement filtering on the API & client
- How to implement sorting on the API & client
- Using Action Filters
- Adding a TimeAgo pipe
- Implement caching in the client for paginated resources
Implement the 'like user' functionality and gain an understanding of the following:
- Many to many relationships
- Configuring entities in the DbContext
Implement the Messaging functionality and gain an understanding of the following:
- More many to many relationships
- Using query params in Angular
- Using Route resolvers in Angular
Refactor our code to use ASP.NET Identity and gain an understanding of the following:
- Using .Net Identity
- Role Management
- Policy Based authorisation
- UserManager
- SignInManager
- RoleManager

