Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/my-python-projects/jreport

About This project involves a two-step authentication system (2FA) using Flask for the backend and Vue.js with Bootstrap for the frontend. The project also includes functionality to generate reports in Word format.
https://github.com/my-python-projects/jreport

2fa bootstrap flask flask-application jprogram jreport jwt jwt-token mongo mongodb python rabbitmq vue vuejs

Last synced: about 1 month ago
JSON representation

About This project involves a two-step authentication system (2FA) using Flask for the backend and Vue.js with Bootstrap for the frontend. The project also includes functionality to generate reports in Word format.

Awesome Lists containing this project

README

        

# JReport

[English](#english-version) | [Português](#versão-em-português)

## English Version

### Table of Contents
- [Description](#description)
- [Technologies Used](#technologies-used)
- [Installation and Configuration](#installation-and-configuration)
- [Run with Docker and Docker Compose](#run-with-docker-and-docker-compose)
- [Run without Docker](#run-without-docker)
- [Backend](#backend)
- [Frontend](#frontend)
- [Run using .bat scripts](#run-using-bat-scripts)
- [Features](#features)
- [Contributing](#contributing)
- [License](#license)

### Description

JReport is a web application that uses two-factor authentication (2FA) to enhance user security. After the initial login, users who have 2FA enabled must provide a code generated by their authenticator app. The project also includes the functionality of generating reports in Word format.

### Technologies Used

**Frontend**
- Vue.js
- Bootstrap

**Backend**
- Flask
- Pymongo
- Flask-JWT-Extended
- PyOTP
- qrcode
- RabbitMQ (with Pika)

**Messaging**
- RabbitMQ

### Installation and Configuration

#### Prerequisites

- Python 3.x
- Node.js 20
- MongoDB

OR

- Docker
- Docker Compose

### Run with Docker and Docker Compose

1. Make sure you have Docker and Docker Compose installed on your machine.
2. Run the following command in the project's root directory:

```sh
docker-compose up --build
```

3. The application will be available at:
- Frontend: [http://localhost:8080](http://localhost:8080)
- Backend: [http://localhost:5000](http://localhost:5000)

### Run without Docker

#### Backend

1. Navigate to the backend directory:

```sh
cd backend
```

2. Create and activate a virtual environment:

```sh
python -m venv venv
source venv/bin/activate # For Windows: venv\Scripts\activate
```

3. Install dependencies:

```sh
pip install -r requirements.txt
```

4. Configure environment variables in the `.env` file.

5. Start the server:

```sh
python app.py
```

#### Frontend

1. Navigate to the frontend directory:

```sh
cd frontend
```

2. Install dependencies:

```sh
npm install
```

3. Start the server:

```sh
npm run serve
```

4. The application will be available at [http://localhost:8080](http://localhost:8080).

### Run using .bat scripts

#### Backend

1. Navigate to the `run` directory in the project root.

```sh
cd run
```

2. Run the `backend.bat` script

```sh
backend.bat
```

#### Frontend

1. Navigate to the `run` directory in the project root.

```sh
cd run
```

2. Run the `frontend.bat` script

```sh
frontend.bat
```

### Features

- 2FA Authentication: After the initial login, if 2FA is enabled, the user must provide an additional authentication code.

- Report Generation: Generation of reports in Word format.

- Messaging with RabbitMQ: Use RabbitMQ for asynchronous task processing.

### Contributing

1. Fork the project.

2. Create a branch for your feature (`git checkout -b feature/your-feature`).

3. Commit your changes (`git commit -m 'Add your feature'`).

4. Push to the branch (`git push origin feature/your-feature`).

5. Open a Pull Request.

### License
This project is licensed under the MIT License.

## Versão em Português

### Índice
- [Descrição](#descrição)
- [Tecnologias Utilizadas](#tecnologias-utilizadas)
- [Instalação e Configuração](#instalação-e-configuração)
- [Executar com Docker e Docker Compose](#executar-com-docker-e-docker-compose)
- [Executar sem Docker](#executar-sem-docker)
- [Backend](#backend)
- [Frontend](#frontend)
- [Executar usando scripts .bat](#executar-usando-scripts-bat)
- [Funcionalidades](#funcionalidades)
- [Contribuição](#contribuição)
- [Licença](#licença)

### Descrição

JReport é uma aplicação web que utiliza autenticação com duas etapas (2FA) para aumentar a segurança dos usuários. Após o login inicial, os usuários que têm o 2FA ativado devem fornecer um código gerado pelo seu aplicativo autenticador. O projeto também inclui a funcionalidade de geração de relatórios em formato Word.

### Tecnologias Utilizadas

**Frontend**
- Vue.js
- Bootstrap

**Backend**
- Flask
- Pymongo
- Flask-JWT-Extended
- PyOTP
- qrcode
- RabbitMQ (com Pika)

**Mensageria**
- RabbitMQ

### Instalação e Configuração

#### Pré-requisitos

- Python 3.x
- Node.js 20
- MongoDB

OU

- Docker
- Docker Compose

### Executar com Docker e Docker Compose

1. Certifique-se de ter o Docker e o Docker Compose instalados na sua máquina.
2. Execute o seguinte comando no diretório raiz do projeto:

```sh
docker-compose up --build
```

3. A aplicação estará disponível em:
- Frontend: [http://localhost:8080](http://localhost:8080)
- Backend: [http://localhost:5000](http://localhost:5000)

### Executar sem Docker

#### Backend

1. Navegue até o diretório backend:

```sh
cd backend
```

2. Crie e ative um ambiente virtual:

```sh
python -m venv venv
source venv/bin/activate # For Windows: venv\Scripts\activate
```

3. Instale as dependências:

```sh
pip install -r requirements.txt
```

4. Configure as variáveis de ambiente no arquivo .env
- Renomeie o arquivo .env-example para .env e modifique as váriaveis.

5. Inicie o servidor:

```sh
python app.py
```

#### Frontend

1. Navegue até o diretório frontend:

```sh
cd frontend
```

2. Instale as dependências:

```sh
npm install
```

3. Inicie o servidor:

```sh
npm run serve
```

4. A aplicação estará disponível em [http://localhost:8080](http://localhost:8080).

### Executar usando scripts .bat

#### Backend

1. Navegue até o diretório `run` no raiz do projeto.

```sh
cd run
```

2. Execute o script `backend.bat`

```sh
backend.bat
```

#### Frontend

1. Navegue até o diretório `run` no raiz do projeto.

```sh
cd run
```

2. Execute o script `frontend.bat`

```sh
frontend.bat
```

### Funcionalidades

- Autenticação 2FA: Após o login inicial, se o 2FA estiver ativado, o usuário deve fornecer um código de autenticação adicional.

- Geração de Relatórios: Geração de relatórios em formato Word.

- Mensageria com RabbitMQ: Utilização do RabbitMQ para processamento assíncrono de tarefas.

### Contribuição

1. Faça um fork do projeto.

2. Crie uma branch para sua feature (`git checkout -b feature/your-feature`).

3. Faça commit das suas alterações (`git commit -m 'Add your feature'`).

4. Faça push para a branch (`git push origin feature/your-feature`).

5. Abra um Pull Request.

### Licença
Este projeto está licenciado sob a MIT License.