
Get an overview of the course, learning objectives, and expectations.
Guide to installing required software and tools and creating a new project.
Further instructions on setting up the development environment, including additional configurations and dependencies.
Introduction to the database and its configuration, as well as setting up the connection.
Learn about environment variables and how to use them for database configuration.
Overview of migrations and their role in managing the database schema.
Creating a migration for the Users table and defining its schema.
Creating migrations for the URLs and Visits tables and defining their schemas.
Learn how to test and ensure the database is set up correctly.
Introduction to TypeScript models and how they are used to represent data and inject them into Knex.
Building the URL service for managing URL-related functionality.
Further development of the URL service, including additional methods and error handling.
Introduction to input validation and implementing basic validation rules.
Further development of validation rules and custom validators.
Finalizing validation rules and incorporating them into the application.
Learn how to throw and handle custom exceptions in the application.
Learn how to manage and track visits to the URLs.
Implementing user registration and storing user data in the database.
Learn about password hashing and how to securely store user passwords.
Implementing user login.
Introduction to JWT and how to use it for token-based authentication.
Introduction to the Koa framework and its features.
Setting up the Koa router and defining application routes.
Implementing the authentication router and its endpoints.
Building the authentication middleware to handle user authorization.
Implementing the URLs router and its endpoints.
Managing visits and implementing URL redirection
Why we used Koa and the differences between Koa and Express
Recap of the course, highlighting important concepts and techniques learned, and discussing potential future improvements and next steps for the application.
You can find the full source code for this course on the following link :
https://github.com/AhmadMuj/url-shortener-course-en
Dive into modern web development as you build a feature-rich URL Shortening Service from the ground up. This comprehensive course is designed to provide you with a thorough understanding of TypeScript, PostgreSQL, Koa.js , REST, Knex.Js, and the MVC design pattern, as well as practical experience in applying these technologies and concepts to a real-world project.
In this course, you will start by setting up your development environment and configuring the required tools for an optimal workflow. You will then dive into database configuration and management using PostgreSQL, learning how to create and execute migrations to set up your database schema. The course also covers the use of TypeScript to create efficient and scalable models that interact with the database, as well as the implementation of services to handle URL-related operations and other application logic.
As you progress through the course, you'll explore user authentication and authorization, covering topics such as user registration, password hashing, and JWT-based authentication for secure access to protected resources. You will also learn how to develop a RESTful API using the Koa web framework and Koa Router, creating routes and middleware for various application functionalities.
Throughout the course, you will be guided by hands-on examples and practical exercises that will reinforce your understanding of the topics covered. By the end of this course, you'll have developed a solid foundation in modern web development technologies, enabling you to create efficient and robust applications using TypeScript, PostgreSQL, Koa, and the MVC design pattern. With a completed URL Shortening Service project to showcase, you'll be well-prepared to tackle future web development challenges with confidence and expertise