You will focus on solving 100 exercises on Code Wars. Please register a new account and start solving the problems with KATA levels 3, 4, and 5.
Don’t cheat by looking at the solutions, we will discuss your solutions to the problems at the end of the phase.
All of the solutions to the tasks should be put on GitHub. As a note, please commit all changes to a solution to a task to GitHub, not only the final working one.
This phase has a timeline, to be completed, between two weeks and a month.
@Expected results
Improve problem-solving skills and solution discovery mapping;
Get familiar with the language(C#);
Learn about variables, looping, conditions, arrays, matrices;
Congrats on making it through Phase 0. It is a great accomplishment you should be proud of!
In Phase 1, we will focus on learning the fundamentals of back-end development including:
Object-Oriented Design;
High-level Domain Driven Design;
Project setup;
Three-tier architecture as a primitive example of code organization;
Application configuration;
Cookie-based user authentication;
Dependency injection;
Memory caching;
Application logging;
Exception handling;
Application localization;
Development of background services;
Development of API and exposing API documentation via Swagger;
Unit testing;
SQL;
The timeline for this phase is between one to one and a half months.
SQL Server Internal - guideline for relational databases engines If you ever wondered how the database works, this video lecture will give you answers to all of your questions.
How the browser and HTTP protocol works Before writing a single line of code, first, you need to understand what is happening when you open an URL in the browser. How the browser behaves, what the underlying actions are done for you to see the page, rendered, in the browser. Please view the referenced video examples below for more details.
Understand the concept of how the browser is exchanging data with the webserver;
How the HTML, CSS, and JavaScript are parsed and rendered;
The browser pipeline from typing an address to showing the content to the user;
Object-oriented design and high-level domain-driven design As long living concepts in the industry it is always good to remind of the basics. Please view the referenced video example below for mode details:
Start solving the tasks from SQL_task_01 to SQL_task_10;
Create an ER Diagram for UBER alike application;
The model should support drivers, users, route, user reviews, driver reviews, payments;
The model should offer a solution for route discovery from point A to point B;
@Expected results
To understand how communication works from the browser to the web server and from the webserver to the database;
To be fluent in solving easy to intermediate types of SQL challenges;
To be able to model a database based on provided requirements;
C#/.NET5 This topic will be mostly hands-on, where you will learn how to plan, model, and implement a Calendar Management application.
The client asked us to implement an application that will satisfy the following requirements: FR1: As a user, I would like to be able to register and login into the application; FR2: As a user, I would like to be able to request a password reset. Once initiated I will receive an email with a link. When clicking on the link, I will be asked to type a new password; FR3: As a user, I would like to be able to update my profile including Name, Email, Password; FR4: As a user, I would like to be able to create different calendar events:
Daily (every: 1, 2, 3 .. N days, until Selected date or infinite);
Weekly (every: 1, 2, 3 .. N weeks, until Selected date or infinite);
Monthly (every: 1, 2, 3 .. N months, until Selected date or infinite);
Yearly (every: 1, 2, 3 .. N months, until Selected date or infinite);
FR5: As a user, I would like to be able to add a title, description, add additional emails to who should get the event reminder; FR6: As a user, I would like to be able to set an event reminder frequency(daily, every three days, weekly). The reminder will be sent until the event is dismissed; FR7: As a user, I would like to receive an email when a calendar event occurs. FR8: As a user, I would like to be able to see who has opened up the email. FR9: As a user, I would like to be able to see the upcoming events; FR10: As a user, I would like to be able to cancel an event from the calendar;
@Problems to solve
Create a domain model from the requirement;
Create a three-tier project that will separate the models, business logic, data access, and presentation layer;
Identify the places which can be set in the application configuration.
Being able to develop a web application using .NET5;
Learn the basic principles of professional software development;
Phase 2
With a great pace, we are coming to the last phase of the internship. We hope that by now, you are skillful enough to develop simple web applications that can further improve your skill.
To increase productivity and achieve standardization, this phase will be focused on learning our framework Signals. To learn more about Signals, please visit the following link: https://signals.emitknowledge.com/.
We would expect you to complete this phase between two weeks and a month. @Problems to solve