Skip to content

banudik/Tobeto3A-BootcampProject-Angular

Repository files navigation

CodeStorm Educational Platform Angular17

GitHub Repo stars GitHub forks GitHub issues GitHub contributors GitHub last commit

Backend API ReadMe

Project Description

This educational platform is designed to offer users online courses on various topics. The platform allows users to register, participate in courses, and track their progress.

Features

- Responsive Design - User Registration and Login System
- Authorization for Account Security - Role-Based Access Control (Instructor, Student, Admin)
- Single Login Screen for 3 User Types - Dynamic Search, Pagination, and Listing by Instructor for Courses
- View Course Content and Track Progress - User Profile
- Completion Certificate at the End of Training - Admin and Instructor Panel
- Dark Mode - Global Error Handler
- Authorization Interceptor - Refresh Token and Token Renewal
- Token Revocation - JWT

Architectural Structure

This project adopts the Feature-based Modular Architecture approach. This architecture ensures better organization and management of the project.

Angular File Structure

Project Image 1

Global Error Handler

Project Image 1

We catch all errors that may occur in the application at a central point and show appropriate messages to the user. This allows for more effective error management and logging. Error messages from the API are shown to the user as Toastr notifications.

Auth Interceptor

The authorization interceptor automatically adds the JWT token to every HTTP request and manages the authorization processes.

Refresh Token/Token Renewal and Revoke Token

Project Image 1

Using refresh tokens, we extend user session durations so users do not need to log in again. When a user logs out or in case of a security breach, the token is revoked, blocking access. The refresh token is stored as an HttpOnly Cookie.

Admin Panel Guard

Project Image 1

The AdminPanelGuard ensures that only users with admin privileges can access the admin panel. This guard checks the user's permissions and redirects users without the necessary privileges.

Home Page and About Us

Project Image 1 Project Image 2

  • Pages showing platform statistics and some training courses for users

Listing All Courses and Course Detail Pages

Project Image 1 Project Image 1

  • Features such as dynamic search, listing by instructor name, pagination, and selecting the number of courses displayed on a single page
  • Only accounts with student status can apply to courses that are open for application

Contact and FAQ

Project Image 1 Project Image 2

  • Users can send emails for contact through the site

Login

Project Image 1 Project Image 2

  • Users can log in from the same place with 3 user types, night and day mode selection is stored in LocalStorage and continues with the selected mode when the user logs in again.

Student Registration Page

Project Image 1 Project Image 1 Project Image 2

  • Dynamic validation allows real-time tracking of the values entered by the user.

NavBar Changing According to User Type

Project Image 1 Project Image 2

  • The navbar changes according to the role in JWT stored in LocalStorage

Mails

Project Image 1 Project Image 1 Project Image 2

  • Email verification for newly registered students, two-factor authentication for each login, and email sending for situations such as forgot password

Admin and Instructor Panel

Project Image 1 Project Image 2

  • Panel structure that changes according to instructor and admin roles
  • Perform CRUD operations for all entities such as Course, Instructor, Student, Chapter

Forgot Password and Password Reset

Project Image 1 Project Image 2

  • For users who forgot their password, a URL containing a JWT token is created and sent to the user via email. The user is directed to the password reset page through this link in the email. When creating a new password, the user can see the suitability of the password in real-time with dynamic validation.

Contact

If you have any questions or feedback about this project, please contact us.

Contribution

If you want to contribute to this project, please follow the steps below:

Fork the repository. Create a new branch: git checkout -b my-new-feature Commit your changes: git commit -am 'Add some feature' Push to the branch: git push origin my-new-feature Create a Pull Request.

Thank you

About

Tobeto Bootcamp Project Angular

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •