diff --git a/app/app.py b/app/app.py new file mode 100644 index 0000000..f0bd236 --- /dev/null +++ b/app/app.py @@ -0,0 +1,49 @@ +from flask import Flask, render_template, request, redirect, url_for, session, flash +import os + +app = Flask(__name__) +app.secret_key = 'segredo-super-seguro' + +# Rota de login +@app.route('/', methods=['GET', 'POST']) +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + email = request.form['email'] + password = request.form['password'] + if email == 'admin@admin.com' and password == '123456': + session['user'] = 'Admin' + return redirect(url_for('dashboard')) + else: + flash('Credenciais inválidas.', 'danger') + return render_template('login.html') + +# Rota protegida +@app.route('/dashboard') +def dashboard(): + if 'user' not in session: + return redirect(url_for('login')) + return render_template('dashboard.html', user_name=session['user']) + +# Rota de upload +@app.route('/upload', methods=['GET', 'POST']) +def upload(): + if 'user' not in session: + return redirect(url_for('login')) + if request.method == 'POST': + file = request.files['file'] + if file: + filepath = os.path.join('uploads', file.filename) + os.makedirs('uploads', exist_ok=True) + file.save(filepath) + flash('Arquivo enviado com sucesso!', 'success') + return render_template('upload.html') + +# Logout +@app.route('/logout') +def logout(): + session.clear() + return redirect(url_for('login')) + +if __name__ == '__main__': + app.run(debug=True, port=5003) diff --git a/app/statics/css/style.css b/app/statics/css/style.css new file mode 100644 index 0000000..5d50b11 --- /dev/null +++ b/app/statics/css/style.css @@ -0,0 +1,27 @@ +body { + background-color: #f8f9fa; + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; +} + +h3 { + color: #343a40; +} + +form { + background: #fff; + padding: 20px; + border-radius: 10px; + box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-brand { + font-weight: bold; +} + +button.btn { + transition: background-color 0.3s ease; +} + +button.btn:hover { + opacity: 0.9; +} diff --git a/app/templates/base.html b/app/templates/base.html new file mode 100644 index 0000000..6bf398b --- /dev/null +++ b/app/templates/base.html @@ -0,0 +1,21 @@ + + + + + {% block title %}OCR App{% endblock %} + + + + + + + +
+ {% block content %}{% endblock %} +
+ + + + diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index a4f6e3c..1ee214e 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -1,13 +1,9 @@ - - - - - - Dashboard - - -

Bem-vindo ao Dashboard!

-

Usuário logado: {{ user_email }}

- Sair - - +{% extends "base.html" %} + +{% block title %}Dashboard - OCR App{% endblock %} + +{% block content %} +

Bem-vindo(a), {{ user_name }}

+

Escolha uma ação no menu ou envie um novo documento para OCR.

+Enviar novo documento +{% endblock %} diff --git a/app/templates/login.html b/app/templates/login.html index 6384905..5b48dd8 100644 --- a/app/templates/login.html +++ b/app/templates/login.html @@ -1,32 +1,22 @@ - - - - - - Login - - - -
-

Login

- - {% with messages = get_flashed_messages(with_categories=True) %} - {% if messages %} - {% for category, message in messages %} -
{{ message }}
- {% endfor %} - {% endif %} - {% endwith %} +{% extends "base.html" %} -
- - +{% block title %}Login - OCR App{% endblock %} - - - - +{% block content %} +
+
+

Login

+ +
+ + +
+
+ + +
+
- - +
+{% endblock %} diff --git a/app/templates/upload.html b/app/templates/upload.html new file mode 100644 index 0000000..f89366d --- /dev/null +++ b/app/templates/upload.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block title %}Upload de Arquivo - OCR App{% endblock %} + +{% block content %} +

Upload de Documento

+
+
+ + +
+ +
+{% endblock %}