forked from data-students/AEDChallenge
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.py
86 lines (70 loc) · 3.21 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from flask import Flask, request, render_template, redirect, url_for, send_file
import json
import pathlib
from participant import save_participant
import os
current_directory = os.getcwd()
app = Flask(__name__,template_folder=current_directory,static_folder=os.path.join(current_directory, 'static'))
# Ruta al JSON de participantes
DATA_PATH = os.path.join(current_directory, "data", "datathon_participants.json")
@app.route("/")
def main():
return render_template("main.html")
@app.route("/datos.html")
def datos():
return render_template("datos.html")
@app.route("/submit", methods=["GET", "POST"])
def register():
if request.method == "POST":
# Captura los datos enviados por el formulario
data = {
"name": request.form["name"],
"email": request.form["email"],
"age": int(request.form["age"]),
"year_of_study": request.form["year_of_study"],
"shirt_size": request.form["shirt_size"],
"university": request.form["university"],
"dietary_restrictions": request.form["dietary_restrictions"],
"interests": [interest.strip() for interest in request.form["interests"].split(",")],
"preferred_role": request.form["preferred_role"],
"experience_level": request.form["experience_level"],
"hackathons_done": int(request.form["hackathons_done"]),
"objective": request.form["objective"],
"introduction": request.form["introduction"],
"technical_project": request.form.get("technical_project", ""),
"future_excitement": request.form.get("future_excitement", ""),
"fun_fact": request.form.get("fun_fact", ""),
"preferred_languages": [
language.strip() for language in request.form["preferred_languages"].split(",")
],
"friend_registration": [], # Puedes ajustar esto según tus necesidades
"preferred_team_size": int(request.form["preferred_team_size"]),
"availability": {
slot.strip(): True for slot in request.form["availability"].split(",")
}, # Simula disponibilidad en todos los horarios
"programming_skills": {
skill.strip(): 1 for skill in request.form["programming_skills"].split(",")
}, # Simula habilidades con nivel básico
"interest_in_challenges": [
challenge.strip() for challenge in request.form["interest_in_challenges"].split(",")
],
}
# Guarda el participante en el JSON
save_participant(data, path=DATA_PATH)
# Redirige a la página para buscar equipo
return redirect(url_for("equipos"))
# Si es un GET, solo renderiza el formulario
return render_template("datos.html")
# Ruta que renderiza buscar_equipo.html
@app.route("/equipos")
def equipos():
return render_template("equipos.html")
@app.route('/perfiles.json')
def serve_perfiles():
return send_file('perfiles.json')
if __name__ == "__main__":
# Asegúrate de que el archivo JSON existe
if not pathlib.Path(DATA_PATH).exists():
with open(DATA_PATH, "w") as f:
json.dump([], f)
app.run(debug=True)