Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pradipchaudhary/dw-lms
"DW-LMS is a Node.js application for managing user authentication and authorization, providing a secure and scalable solution for handling logins, roles, and access control in Deerwalk applications."
https://github.com/pradipchaudhary/dw-lms
api backend expressjs nodejs restful-api
Last synced: 2 days ago
JSON representation
"DW-LMS is a Node.js application for managing user authentication and authorization, providing a secure and scalable solution for handling logins, roles, and access control in Deerwalk applications."
- Host: GitHub
- URL: https://github.com/pradipchaudhary/dw-lms
- Owner: pradipchaudhary
- License: mit
- Created: 2024-08-10T13:46:14.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-09-10T11:03:27.000Z (2 months ago)
- Last Synced: 2024-09-10T12:35:32.336Z (2 months ago)
- Topics: api, backend, expressjs, nodejs, restful-api
- Language: JavaScript
- Homepage: https://dw-lms.onrender.com/
- Size: 72.3 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Deerwalk Login Management System (DW-LMS)
## Overview
The **Deerwalk Login Management System (DW-LMS)** is a Node.js application designed to manage user authentication and authorization for various Deerwalk applications. This system provides a secure and scalable solution for handling user logins, managing roles, and controlling access to protected resources.
## Features
- **User Authentication**: Secure login mechanism using JWT (JSON Web Token).
- **Role-Based Access Control**: Assign and manage roles for different users.
- **Password Management**: Includes features for password hashing, recovery, and updates.
- **Session Management**: Efficient session handling with support for session expiration.
- **Audit Logs**: Track user activities and important changes within the system.
- **RESTful API**: Provides API endpoints for integration with other applications.
- **Scalable Architecture**: Built to handle large numbers of users and requests efficiently.## Technology Stack
- **Backend**: Node.js, Express.js
- **Database**: MongoDB
- **Authentication**: JWT (JSON Web Token)
- **Environment Management**: dotenv
- **Logging**: Winston or Morgan
- **Version Control**: Git## Installation
To set up and run the DW-LMS project on your local machine, follow these steps:
1. **Clone the repository**:
```bash
git clone https://github.com/pradipchaudhary/dw-lms.git
```2. **Navigate to the project directory**:
```bash
cd dw-lms
```3. **Install dependencies**:
```bash
npm install
```4. **Set up environment variables**:
- Create a `.env` file in the root directory.
- Add the following variables:
```bash
# Server Configuration
PORT=9000
# Database Configuration
DB_URI=mongodb://localhost:27017/mydatabase
# Email Service Configuration
[email protected]
EMAIL_PASS=your-email-password
# JWT Secret
JWT_SECRET=your_jwt_secret_key
# Other Configuration
APP_NAME=Your Application Name```
5. **Run the application**:
```bash
npm start
```6. **Access the application**:
- Open your browser and go to `http://localhost:`.## API Endpoints
Here’s a quick overview of some key API endpoints:
- **POST /api/auth/register**: Register a new user.
- **POST /api/auth/login**: Authenticate a user and generate a token.
- **GET /api/users**: Get a list of users (Admin only).
- **PUT /api/users/:id**: Update user details (Admin only).
- **DELETE /api/users/:id**: Delete a user (Admin only).## Usage
- **User Registration**: New users can sign up by providing necessary details.
- **Login**: Users can log in to obtain a JWT token, which is required for accessing protected routes.
- **Role Management**: Admins can assign roles to users, allowing for controlled access to different parts of the application.
- **Session and Token Management**: Tokens are used to manage sessions, with support for automatic expiration and renewal.## Contributing
Contributions are welcome! If you'd like to contribute:
1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Make your changes and commit them (`git commit -m 'Add new feature'`).
4. Push to the branch (`git push origin feature-branch`).
5. Open a pull request.## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Contact
For any questions or support, feel free to contact [Pradip Chaudhary](mailto:[email protected]).