
A brief overview of what Django Rest Framework is and pointing out its basic features.
Installing DRF (Django Rest Framework) step by step according to the documentation.
Securing sensitive keys using the Django Environ library.
Creating a requirements.txt file allows you to control which versions of libraries are used in the project. Creating this file helps maintain consistency, version control, and dependency management in the Django project.
Initializing an application named "Books" in DRF, creating and describing the model, serializer, and viewset.
Preparing URLs and Router in DRF, creating a superuser, running the application, and checking the functionality of the DRF panel and the admin panel in Django.
Testing endpoints in DRF using the Postman application. Testing all CRUD requests (GET, POST, DELETE, PATCH).
Diagram and objective to achieve in our Angular application
Initializing an Angular application and starting the frontend server.
Creating an interface aligned with the backend model, establishing the first service to retrieve a list of books. from backend. Using RxJS to work with Observables allows for asynchronous data streams handling in Angular applications. Utilizing HttpClient to create a GET request.
Familiarization with Angular Router, which facilitates navigation between various components within an application. This involves setting up routes that define the paths to different components, allowing users to navigate seamlessly between them.
Installation of Bootstrap and utilization of the default Bootstrap table to present a list of books. Beginning work on the BookList component. Creating the first function responsible for fetching a list of books from the backend, utilizing the previously created service for this purpose.
Updates in the TypeScript file of the BookList component. Editing the HTML file of the component using the *ngFor directive to display the list of books fetched from the backend. Implementing CORS headers on the backend. Initializing HttpClient in app.module.ts.
Implementing another CRUD task, which is deleting a selected book. Updating the service and adding a new method, deleteBook(), to BookList.ts. Testing deletion using the DRF panel.
Creation of a new component called new-book. Adding a button that, using the router, will navigate to the new component. Creating a form for adding a new book using Bootstrap. Explaining the process of creating a Reactive forms in Angular. Creating form validation. Implementation of the Create task from CRUD.
Creating a new class in views.py on the backend side, which will expose the category described in the model. Setting up the corresponding endpoint in urls.py. Creating a new service on the frontend side to fetch the content of categories and then utilizing this service in the new-book component. Updating the HTML form to include a select field.
Fetching data of a selected book from the backend. Creating a new method in the service for this purpose: getBookById(). Utilizing this data to populate the form, and subsequently enabling the update of the selected book data (Implementation of the final CRUD task - update).
Creation of a navbar in Angular containing Login button. Creation of a new component Login, and setting up a route for it using the router. Creation of a login form using reactive forms in Angular
Installation of rest_framework.authtoken in DRF and updating the settings.py file for proper configuration. Creating a new 'accounts' application in the backend to handle tokenization and authorization. Creating a class in views.py within the new application responsible for generating tokens for users. Manually creating a token for the superuser from the console. Verifying the correctness of the created token using the Django admin panel and Postman.
Creation of a new service in Angular and relevant methods to handle login and logout. Utilizing local storage to store user information. Updating the login component with methods created in the new service and creating a logout method. Testing the correctness of data transmission and removal from local storage.
Using BehaviorSubject from RxJS to store and emit the current login status value. Showing and hiding the Login or Logout buttons in the navbar depending on the login status.
Creation of a new Signup component in Angular and preparation of a form for creating a new user from the frontend side.
Preparation of registering a new user from the backend. Creating a new class in views.py within the 'accounts' application and utilizing the make_password method from the hashers module in Django to hash the password received from the frontend form. Creating a new serializer for the user. Establishing a new endpoint for registering a new user. Testing the creation of a new user using Postman.
Completion of the new user creation process, testing the registration, login, and logout procedures for users.
This course is designed to equip participants with the essential skills for building modern web applications.
Throughout the course, participants will delve into the intricacies of frontend development using Angular, where they'll learn to create dynamic and interactive user interfaces. From component creation to handling user input and managing application state, participants will gain hands-on experience in leveraging Angular's powerful features to enhance user experience.
On the backend side, participants will explore Django Rest Framework (DRF), a powerful tool for building RESTful APIs. They'll learn to set up Django projects, define models, create views, and configure URLs, laying a solid foundation for backend architecture. Through practical exercises, they'll master the creation of RESTful APIs, enabling seamless communication between frontend and backend.
One of the course highlights is the focus on authentication, where participants will learn to implement token-based authentication using Django Rest Framework. Understanding the importance of security in web applications, they'll ensure the protection of user data while providing a smooth authentication experience for users.
Furthermore, participants will gain insights into testing APIs using tools like POSTMAN, allowing them to verify functionality and performance. By conducting comprehensive tests, they'll ensure the reliability and efficiency of their APIs .
By the end of the course, participants will have the skills and knowledge needed in full-stack web development. Whether you're a beginner looking to kickstart your web development journey or an experienced developer seeking to expand your skill set, this course offers valuable insights and practical experience to help you succeed.