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.
- 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 |
This project adopts the Feature-based Modular Architecture approach. This architecture ensures better organization and management of the project.
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.The authorization interceptor automatically adds the JWT token to every HTTP request and manages the authorization processes.
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. 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.- Pages showing platform statistics and some training courses for users
- 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
- Users can send emails for contact through the site
- 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.
- Dynamic validation allows real-time tracking of the values entered by the user.
- The navbar changes according to the role in JWT stored in LocalStorage
- Email verification for newly registered students, two-factor authentication for each login, and email sending for situations such as forgot password
- Panel structure that changes according to instructor and admin roles
- Perform CRUD operations for all entities such as Course, Instructor, Student, Chapter
- 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.
If you have any questions or feedback about this project, please contact us.
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.