Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/my-python-projects/jreport
- Owner: my-python-projects
- Created: 2024-02-27T14:46:54.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-08-19T18:01:25.000Z (4 months ago)
- Last Synced: 2024-08-20T20:28:03.807Z (4 months ago)
- Topics: 2fa, bootstrap, flask, flask-application, jprogram, jreport, jwt, jwt-token, mongo, mongodb, python, rabbitmq, vue, vuejs
- Language: HTML
- Homepage:
- Size: 684 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
- MongoDBOR
- 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
- MongoDBOU
- 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.