- [.NET] Getting familiar with c# .NET, Initializing and setting new Project, explainig design pattern and how it works, basic OOP knowledge, setting up PGAdmin
- [.NET] Login Register with Identity - explaining services, extension methods, Custom exceptions, JWT, Password Hashing
- [.NET] Creating Pizza Endpoint - Mappings, Dtos, Automapper
- [.NET] Creating Order Endpoint - Connecting with pizza
- [.NET] Finishing Endpoints logic, SOLID, DRY, KISS, organizing program.cs with best practises
- [Angular] Initializing Angular Project, Creating Components, Routing, Directives, Modules
- [Angular] Services, Dependency Injection, Lifecycle Methods, Custom Pipes, Custom Directives, Inputs, Outputs
- [Angular] Forms, Reactive Forms, Form Validation, Observables, Pipes
- [Angular] Authentication, Guards, Interceptors
- [Angular] HTTP Client, RXJS Operators, Error Handling
- Install NodeJS - https://nodejs.org/en/download/ (used only the first time) [LTS version]
- Install a LTS version of node (preferably v20 or above)
- Confirm installation by running -
node -vin terminal.
- Along with node, npm should be installed. Check if npm is installed by running
npm -vin terminal. It should return a value (ex.10.14.15).- If npm is not installed run the following command in terminal
npm install -g npm@latestand then check the version by runningnpm -v.
- If npm is not installed run the following command in terminal
- Install Angular CLI -
npm install -g @angular/cli(used only the first time)- For our project we will need the latest version of the Angular CLI which is version 20, but since it was released just week ago, we will stick to the stable version 18.
- Even Major Versions: These were often considered more stable, production-ready releases. They typically focused on refinement, bug fixes, and performance improvements, building upon features introduced in previous versions.
- Odd Major Versions: These releases sometimes introduced more experimental features, significant architectural changes, or preview versions of upcoming functionalities. They could be seen as stepping stones towards the next stable, even-numbered release, where these features would be refined and stabilized.
- If you want to specify an exact version, you can add that in the command -
npm install -g @angular/cli@18 - Run
ng versionto check if it's installed
- For our project we will need the latest version of the Angular CLI which is version 20, but since it was released just week ago, we will stick to the stable version 18.
- Create a new folder for the project and open the folder in VS Code
- Open terminal and create new project -
ng new name-of-the-project- Would you like to add Angular routing? - Y - we will need this setting to enhance navigation by allowing users to move between different views or pages seamlessly.
- Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)? - N - SSR means that the server processes your application, generates the HTML for the page, and sends it to the client. SSG means that pages are pre-rendered at build time, allowing them to be served as static HTML.
- Which stylesheet format would you like to use? - SCSS - Angular offers different pre-processors and stylesheets to choose from. We will be using SCSS which extends CSS with variables, nested rules, and more powerful mixins
- Would you like to share pseudonymous usage data about this project with the Angular Team at Google (not important) - N
- Navigate to newly created folder for project
cd client- if you used a different name than client, change "client" with the name of the folder that was created while usingng new <THE_NAME> - Run app
npm start - Open project in browser - http://localhost:4200
- Install Angular Material -
ng add @angular/material - Choose a prebuilt theme name (ex. the first one), or "custom" for a custom theme (custom requires additional setup with SCSS variables https://material.angular.io/guide/theming)
- Set up global Angular Material typography styles - Y
- Include the Angular animations module? - Include and enable animations
- Create component -
ng generate component components/<NAME_OF_COMPONENT> --standalone - Create service -
ng generate service services/<NAME_OF_SERVICE> - Create guard -
ng generate guard guards/<NAME_OF_GUARD> - Create pipe -
ng generate pipe pipes/<NAME_OF_PIPE> --standalone - Create directive -
ng generate directive directives/<NAME_OF_DIRECTIVE> --standalone - skip tests (this is added to each of the previous commands to prevent creating unnecessary .spec files) -
--skip-tests
- AutoImport https://marketplace.visualstudio.com/items?itemName=steoates.autoimport
- Angular Language Service https://marketplace.visualstudio.com/items?itemName=Angular.ng-template
-
Install visual studio 2022 -
STEP BY STEP GUIDE => https://learn.microsoft.com/en-us/visualstudio/install/install-visual-studio?view=vs-2022 -
Install and set up PostgreSQL and PGAdmin4 -
STEP BY STEP GUIDE => https://commandprompt.com/education/how-to-download-and-install-postgresql/
- add-migration initial => (where initial is custom name for the migration, can be anything)
- update-database => applies the current migration on the database
- https://www.w3resource.com/csharp-exercises/basic/index.php
- https://medium.com/@techworldwithmilan/net-developer-roadmap-2023-c1a9a102748e
- https://roadmap.sh/r?id=65298644f43a58c923c6e675
- https://roadmap.sh/aspnet-core
- https://www.mongodb.com/resources/basics/databases/acid-transactions
- https://refactoring.guru/design-patterns/csharp
- https://www.c-sharpcorner.com/article/c-sharp-security-best-practices-for-secure-coding/
- Aneta Stankovska - [email protected]
- Todor Pelivanov - [email protected]