Uploaded by Manisha Singh

Project Progress Report

advertisement
------------------- -----------------------Project Progress Report-----------------------------------------------Date: 31-10-2023
1.Authentication
1. JWT Token Authentication:

Users can securely log in, and JWT tokens are generated for authorized access.

Library Used: [JWT Library]

Api created[/login,/signup]

Functionalities:
1. Token generation
2. Token validation
3. User authentication flow
2 . Password Reset Functionality:

Password reset feature is operational, allowing users to recover forgotten passwords.

Password reset tokens are generated and sent to users' email addresses.

Library Used: [NodeMailer]

Api created:[/check-email-exists,/forgot-password,/update-password-by-token']

Functionalities:
1. Token generation for password reset.
2. Email verification flow
3. Secure Password Management:

User passwords are securely hashed and stored in the database to prevent data breaches.

Library Used: [Crypto,Bycrypt]

Functionalities:
1) Secure password hashing
4.Authorization

Role-Based Authorization:
1. The system distinguishes between two roles: admin and user.
2. Each role has specific access permissions and restrictions.

Admin Role Functionality:
1. The admin role is equipped with the capability to create new user accounts.
2. Admins can access a user management panel with user creation functionality.

Library Used: [MoongooseObjectId]

Api using this[/login,/profile,/users-data]
5.Folder Upload and Managementent for Python script
Libraries Used:
1) multer: Multer is used for handling file uploads. It provides configuration options for specifying
the destination and filename of uploaded files.
2) fs: The 'fs' (File System) module is part of Node.js's core modules and is used for working with
the file system, including creating directories and checking if they exist.
3) child_process: The 'child_process' module is used to spawn a child process for executing the
Python script. It provides a way to run external commands and handle their output.
6. Multer Storage Configuration:

A 'storage' configuration is defined for Multer, specifying the destination and filename for
uploaded files.

The destination function creates a directory based on the 'folderPath' received in the request
and sets it as the destination path for uploaded files.

If the directory does not exist, it is created using 'fs.mkdirSync'.

Libraries used:[Multer]
7. JWT Token-Based Authentication Middleware

Api created [/api/admim,/api/user]

Middleware Function:
The authenticateMiddleware function is responsible for validating JWT tokens in the
'authorization' header of incoming HTTP requests.

It checks the token format, verifies the token's authenticity using the 'jsonwebtoken' library,
and sets user data in the request object if the token is valid.

Library Used[mongoose,jsonwebtoken,express]
Project Components:

user-login

signup

services

reset-password

email-provider

confirmation

adminsign-up

tasks
Angular Services:
1. Angular AuthService Service: Angular AuthService service, which is responsible for
handling user authentication, authorization, and related operations within an Angular
application

Libraries used [@angular/core,HttpClient,rxjs,@angular/router
2. Angular AdminService:The primary purpose of the AdminService is to facilitate the
retrieval of information specific to logged-in admin users.

Service Functionality:
The AdminService features a single method:

fetchLoggedInAdminInfo: This method retrieves admin information for the currently
logged-in admin user. It starts by checking for the presence of an admin JWT token in local
storage. If a valid token is found, it constructs the necessary HTTP headers with the token
for authentication.
Download