Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gthomas08/totp-manager
Full Stack Web App To Manage TOTP Enrolements With Shibboleth IdP
https://github.com/gthomas08/totp-manager
express mongodb mongoose nodejs reactjs
Last synced: about 3 hours ago
JSON representation
Full Stack Web App To Manage TOTP Enrolements With Shibboleth IdP
- Host: GitHub
- URL: https://github.com/gthomas08/totp-manager
- Owner: gthomas08
- Created: 2022-06-26T10:26:24.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-06-15T06:05:24.000Z (over 1 year ago)
- Last Synced: 2023-06-15T07:26:50.435Z (over 1 year ago)
- Topics: express, mongodb, mongoose, nodejs, reactjs
- Language: JavaScript
- Homepage:
- Size: 909 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TOTP Manager (Shibboleth Integration)
![TOTP Manager Users](/screenshots/totp_manager_users.png)
More screenshots can be found [here](screenshots/).
## About The Project
This project is part of the Computer Engineering and Informatics Department (CEID) of University of Patras Thesis. It features a platform that an admin can use to manage TOTP enrollements. This project is directly integrated with the [Sibboleth IdP V4.2.1+](https://shibboleth.atlassian.net/wiki/spaces/IDP4/overview?homepageId=1265631498) and its [TOTP Plugin](https://shibboleth.atlassian.net/wiki/spaces/IDPPLUGINS/pages/1376878877/TOTP). Visit [Wiki](https://github.com/GTS08/TOTP-Manager/wiki) to integrate TOTP Manager with Shibboleth IdP.
### Built With
The project was built with the MERN Stack.
- [MongoDB](https://www.mongodb.com)
- [Express](https://expressjs.com)
- [React](https://reactjs.org)
- [Node.js](https://nodejs.org/)## Getting Started
To get a local copy up and running follow these steps.
### Prerequisites
- Node.js
- npm
- MongoDBFor more information on how to install Node.js and npm, visit [Node.js](https://nodejs.org/) website.
For more information on how to install MongoDB, visit [MongoDB](https://www.mongodb.com) website.
### Installation
#### Development
1. Setup a local database. More information in [MongoDB](https://www.mongodb.com) website.
2. Clone the repo
```sh
git clone https://github.com/GTS08/TOTP-Manager.git
```
3. Change directory to server4. Install npm packages
```sh
npm install
```
5. Set the environmental variables in .env file```sh
MONGODB_URI=
PORT=3001
SECRET=
ENCRYPTION_KEY=<32_byte_random_string>
ENCRYPTION_VECTOR=<16_byte_random_string>
```6. Start the server
```sh
npm run dev
```7. Change directory to client
8. Install npm packages
```sh
npm install
```9. Start react app
```sh
npm start
```## Usage
Start by creating an admin under Admin Collection in the database with the following structure.
```json
{
"username": "",
"passwordHash": ""
}
```To generate a passwordHash, you can use an online [bcrypt generator](https://bcrypt-generator.com/).
Once an admin is created, visit http://localhost:3000/ to log in with the admin credentials.
Visit [Wiki](https://github.com/GTS08/TOTP-Manager/wiki) to integrate TOTP Manager with Shibboleth IdP.
## Production
1. ```sh
wget https://github.com/GTS08/TOTP-Manager/releases/download/release/totp_manager_release.tar.gz
tar -xzf totp_manager_release.tar.gz
cd totp_manager_release
```
2. Set the environmental variables in .env file```sh
MONGODB_URI=
PORT=3001
SECRET=
ENCRYPTION_KEY=<32_byte_random_string>
ENCRYPTION_VECTOR=<16_byte_random_string>
```3. Install npm packages
```sh
npm install
```4. Start the server
```sh
npm start
```