Skip to content

Ft018 eliminar birtdate country back front #619

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 90 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
a4a53bc
base de datos creada
PabloQuerales Feb 27, 2025
2fa5a1d
Merge pull request #1 from 4GeeksAcademy/ft001-data-base
camilocortes27 Feb 28, 2025
49a9151
container del login creado
PabloQuerales Feb 28, 2025
5e79955
Merge pull request #2 from 4GeeksAcademy/ft002-container-login-front
Luisfmalizia Feb 28, 2025
0eb772c
se crearon los endpoinst de uno y todos los usuarios y el endpoint de…
Luisfmalizia Feb 28, 2025
900a257
se creó el login, falta conectarlo con el endpoint
PabloQuerales Feb 28, 2025
1de8223
Merge pull request #4 from 4GeeksAcademy/ft006-login-front
camilocortes27 Feb 28, 2025
96a7fd3
Merge pull request #3 from 4GeeksAcademy/ft004-login-backend
camilocortes27 Feb 28, 2025
b8885e8
sidebar inicial
camilocortes27 Feb 28, 2025
af3bd9f
Merge pull request #7 from 4GeeksAcademy/ft005-sidebar-front
Luisfmalizia Feb 28, 2025
2943da5
se acomodo la info y se crearon los iconos falta acomodar espacios, …
camilocortes27 Feb 28, 2025
3626737
Merge pull request #8 from 4GeeksAcademy/ft005-sidebar-front
Luisfmalizia Feb 28, 2025
2d6517f
creado el endpoint de post account pero falta un detalle
Luisfmalizia Feb 28, 2025
74902fc
Merge pull request #9 from 4GeeksAcademy/ft007-sidebar-back
camilocortes27 Mar 1, 2025
d85f23a
solucionado el problema con la base de datos
PabloQuerales Mar 1, 2025
c8a7975
sidebar casi terminado , consumo de api de terceros y nombre program…
camilocortes27 Mar 1, 2025
add372a
Merge pull request #11 from 4GeeksAcademy/ft005-sidebar-front
PabloQuerales Mar 1, 2025
8e5d7b9
corrección de la base de datos y validaores del login para moverme en…
PabloQuerales Mar 1, 2025
77a2f86
Merge pull request #12 from 4GeeksAcademy/ft006-login-front
camilocortes27 Mar 1, 2025
cdf7d4f
corrección del consumo de los endpoints
PabloQuerales Mar 1, 2025
a289dce
Merge pull request #13 from 4GeeksAcademy/ft006-login-front
camilocortes27 Mar 1, 2025
0e77f9e
se creo el endpoint de login(token) y el veryfy token
Luisfmalizia Mar 1, 2025
e29a0c5
Merge pull request #14 from 4GeeksAcademy/ft007-sidebar-back
camilocortes27 Mar 1, 2025
23c3195
creacion card
camilocortes27 Mar 1, 2025
dc78ea8
Merge pull request #15 from 4GeeksAcademy/ft008-cards-front
PabloQuerales Mar 1, 2025
00ed845
se terminó con el maquetado de la vista CUENTAS, faltaría linkear las…
PabloQuerales Mar 1, 2025
8dcd427
Merge pull request #16 from 4GeeksAcademy/ft009-container-principal-page
camilocortes27 Mar 1, 2025
c762520
adelanto de estilos de card
camilocortes27 Mar 2, 2025
bbce051
Merge pull request #17 from 4GeeksAcademy/ft008-cards-front
PabloQuerales Mar 2, 2025
0cf26d8
se crearon los endpoinst para mostrar todas la cuentas y una cuenta e…
Luisfmalizia Mar 2, 2025
6c2176d
Merge pull request #18 from 4GeeksAcademy/ft007-sidebar-back
PabloQuerales Mar 2, 2025
15fe0d0
se terminó de validar el login, con cambios de estilo en caso de cont…
PabloQuerales Mar 2, 2025
11da59d
refactorización de código
PabloQuerales Mar 2, 2025
c0e407e
Merge pull request #19 from 4GeeksAcademy/ft006-login-front
Luisfmalizia Mar 2, 2025
9e10af4
endpoint registro usuario creado
LauraPostigo Mar 3, 2025
5271f4a
Merge pull request #20 from 4GeeksAcademy/ft003-registro-usuario-backend
Luisfmalizia Mar 3, 2025
b031e67
se agregó el bcrypt para encriptar contraseña y se ajsutaron estilos …
PabloQuerales Mar 3, 2025
e2ac0ab
Merge pull request #21 from 4GeeksAcademy/ft006-login-front
Luisfmalizia Mar 3, 2025
abc235d
resolviendo conflictos
camilocortes27 Mar 3, 2025
b0a8841
Merge branch 'develop' of https://github.com/4GeeksAcademy/proyecto-f…
camilocortes27 Mar 3, 2025
61bc2d4
se terminó de configurar el login, con validadores de token y se agre…
PabloQuerales Mar 4, 2025
70fc98c
se crearon funciones en el flux para capturar al usuario regitrado y …
PabloQuerales Mar 4, 2025
0ec5cdd
Merge pull request #22 from 4GeeksAcademy/ft006-login-front
Luisfmalizia Mar 5, 2025
9482918
correcion de errores
camilocortes27 Mar 5, 2025
39ac33d
creación de la rama para solucionar bugs de base de datos
PabloQuerales Mar 5, 2025
c19ed2d
se cambió la logitud permitida para las contraseñas
PabloQuerales Mar 5, 2025
d8dbb57
Merge pull request #23 from 4GeeksAcademy/ft011-bugs-data-base
Luisfmalizia Mar 5, 2025
ac76d2c
correcion errores
camilocortes27 Mar 5, 2025
1808828
forth
LauraPostigo Mar 5, 2025
e924ef4
bug fix
camilocortes27 Mar 5, 2025
cc7ee89
Merge branch 'develop' of https://github.com/4GeeksAcademy/proyecto-f…
LauraPostigo Mar 5, 2025
ed7cb1d
se agrego la funcion para desencriptar la contraseña en el endpoint d…
Luisfmalizia Mar 5, 2025
4a21d99
Merge pull request #24 from 4GeeksAcademy/ft012-bugs-login
camilocortes27 Mar 5, 2025
e4096d9
fix bugs
camilocortes27 Mar 5, 2025
ee09402
Merge branch 'develop' of https://github.com/4GeeksAcademy/proyecto-f…
camilocortes27 Mar 5, 2025
b7fcf82
Merge branch 'develop' of https://github.com/4GeeksAcademy/proyecto-f…
LauraPostigo Mar 5, 2025
366b5ad
se creo el fetch para mostrar el balance de una cuenta, faltan los va…
Luisfmalizia Mar 5, 2025
e2c76b3
se crea el map y se consume info de la bd y se muestra en la card
camilocortes27 Mar 5, 2025
117b606
se corrigieron los bugsdel login y se agregaron las rutas del formula…
PabloQuerales Mar 5, 2025
8713a13
se creó el boton y se ubicó en el lugar deaseado, tambien se creó el …
PabloQuerales Mar 6, 2025
e440ca8
se creó el modal y se conectó con el back para crear cuentas nuevas, …
PabloQuerales Mar 6, 2025
5697d0b
registro de usuario con conexion a back
LauraPostigo Mar 6, 2025
1616ca8
Merge pull request #25 from 4GeeksAcademy/ft010-registro-usuario-front
PabloQuerales Mar 6, 2025
55538ac
merge realizado correctamente
PabloQuerales Mar 6, 2025
e638ce3
se conectó con el form de registro y se agregaron correcciones de err…
PabloQuerales Mar 6, 2025
a0d3822
Merge pull request #26 from 4GeeksAcademy/ft014-bugs-login
LauraPostigo Mar 6, 2025
bcd24d6
bugx fix
camilocortes27 Mar 6, 2025
c3230c3
merge completado
camilocortes27 Mar 6, 2025
d6bcf02
Merge pull request #27 from 4GeeksAcademy/ft008-cards-front
LauraPostigo Mar 6, 2025
59d4a1d
Merge branch 'develop' of https://github.com/4GeeksAcademy/proyecto-f…
PabloQuerales Mar 6, 2025
8587884
merge realizado correctamente
PabloQuerales Mar 6, 2025
67a43d2
Merge pull request #28 from 4GeeksAcademy/ft015-button-add
LauraPostigo Mar 6, 2025
7e766df
merge realizado correctamente
PabloQuerales Mar 6, 2025
67c1df0
Merge pull request #29 from 4GeeksAcademy/ft016-modal-form-front
LauraPostigo Mar 6, 2025
0d5e409
merge para pull
Luisfmalizia Mar 6, 2025
ef1fb1c
se creo la logica para hacer la suma de los balances y mostrarlos en …
Luisfmalizia Mar 6, 2025
c2a9fe0
creación de la página 404
PabloQuerales Mar 7, 2025
f65c8a4
estilos casi terminados
camilocortes27 Mar 7, 2025
db3809f
Merge pull request #30 from 4GeeksAcademy/ft013-balance-general-front
camilocortes27 Mar 7, 2025
333660d
Merge branch 'develop' of https://github.com/4GeeksAcademy/proyecto-f…
camilocortes27 Mar 7, 2025
07dee73
pull
camilocortes27 Mar 7, 2025
4141360
Merge pull request #31 from 4GeeksAcademy/ft008-cards-front
PabloQuerales Mar 7, 2025
ea09d1f
Merge pull request #32 from 4GeeksAcademy/ft017-page-404
LauraPostigo Mar 7, 2025
67ff59f
se borró de la abse de datos las opciones de birthdate y country
PabloQuerales Mar 7, 2025
5a894c5
Merge pull request #33 from 4GeeksAcademy/ft019-bugs-data-base
LauraPostigo Mar 7, 2025
edcc75f
eliminado birtdate y country del back
LauraPostigo Mar 7, 2025
d3ccbad
Merge pull request #34 from 4GeeksAcademy/ft018-eliminar-birtdate-cou…
camilocortes27 Mar 7, 2025
dfdf6af
se elminó el seteo del local storage del archivo flux que redirigía a…
PabloQuerales Mar 7, 2025
7325d2d
Merge pull request #35 from 4GeeksAcademy/ft021-bugs-singup-flux
camilocortes27 Mar 7, 2025
eca1799
acomodado el form
LauraPostigo Mar 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"workbench.editorAssociations": {
"*.md": "vscode.markdown.preview.editor"
"workbench.editorAssociations": {
"*.md": "vscode.markdown.preview.editor",
"*.db": "default"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
}
}
6 changes: 4 additions & 2 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
sqlalchemy = "*"

[packages]
flask = "*"
sqlalchemy = "==1.4.46"
sqlalchemy = "*"
flask-sqlalchemy = "*"
flask-migrate = "*"
flask-swagger = "*"
Expand All @@ -18,8 +19,9 @@ gunicorn = "*"
cloudinary = "*"
flask-admin = "*"
typing-extensions = "*"
flask-jwt-extended = "==4.6.0"
flask-jwt-extended = "*"
wtforms = "==3.1.2"
flask-bcrypt = "*"

[requires]
python_version = "3.10"
Expand Down
976 changes: 634 additions & 342 deletions Pipfile.lock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions migrations/README
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Single-database configuration for Flask.
50 changes: 50 additions & 0 deletions migrations/alembic.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# A generic, single database configuration.

[alembic]
# template used to generate migration files
# file_template = %%(rev)s_%%(slug)s

# set to 'true' to run the environment during
# the 'revision' command, regardless of autogenerate
# revision_environment = false


# Logging configuration
[loggers]
keys = root,sqlalchemy,alembic,flask_migrate

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = WARN
handlers = console
qualname =

[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine

[logger_alembic]
level = INFO
handlers =
qualname = alembic

[logger_flask_migrate]
level = INFO
handlers =
qualname = flask_migrate

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S
113 changes: 113 additions & 0 deletions migrations/env.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
import logging
from logging.config import fileConfig

from flask import current_app

from alembic import context

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)
logger = logging.getLogger('alembic.env')


def get_engine():
try:
# this works with Flask-SQLAlchemy<3 and Alchemical
return current_app.extensions['migrate'].db.get_engine()
except (TypeError, AttributeError):
# this works with Flask-SQLAlchemy>=3
return current_app.extensions['migrate'].db.engine


def get_engine_url():
try:
return get_engine().url.render_as_string(hide_password=False).replace(
'%', '%%')
except AttributeError:
return str(get_engine().url).replace('%', '%%')


# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
config.set_main_option('sqlalchemy.url', get_engine_url())
target_db = current_app.extensions['migrate'].db

# other values from the config, defined by the needs of env.py,
# can be acquired:
# my_important_option = config.get_main_option("my_important_option")
# ... etc.


def get_metadata():
if hasattr(target_db, 'metadatas'):
return target_db.metadatas[None]
return target_db.metadata


def run_migrations_offline():
"""Run migrations in 'offline' mode.
This configures the context with just a URL
and not an Engine, though an Engine is acceptable
here as well. By skipping the Engine creation
we don't even need a DBAPI to be available.
Calls to context.execute() here emit the given string to the
script output.
"""
url = config.get_main_option("sqlalchemy.url")
context.configure(
url=url, target_metadata=get_metadata(), literal_binds=True
)

with context.begin_transaction():
context.run_migrations()


def run_migrations_online():
"""Run migrations in 'online' mode.
In this scenario we need to create an Engine
and associate a connection with the context.
"""

# this callback is used to prevent an auto-migration from being generated
# when there are no changes to the schema
# reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html
def process_revision_directives(context, revision, directives):
if getattr(config.cmd_opts, 'autogenerate', False):
script = directives[0]
if script.upgrade_ops.is_empty():
directives[:] = []
logger.info('No changes in schema detected.')

conf_args = current_app.extensions['migrate'].configure_args
if conf_args.get("process_revision_directives") is None:
conf_args["process_revision_directives"] = process_revision_directives

connectable = get_engine()

with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=get_metadata(),
**conf_args
)

with context.begin_transaction():
context.run_migrations()


if context.is_offline_mode():
run_migrations_offline()
else:
run_migrations_online()
24 changes: 24 additions & 0 deletions migrations/script.py.mako
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""${message}

Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Create Date: ${create_date}

"""
from alembic import op
import sqlalchemy as sa
${imports if imports else ""}

# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}
branch_labels = ${repr(branch_labels)}
depends_on = ${repr(depends_on)}


def upgrade():
${upgrades if upgrades else "pass"}


def downgrade():
${downgrades if downgrades else "pass"}
62 changes: 62 additions & 0 deletions migrations/versions/30d819e19461_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
"""empty message

Revision ID: 30d819e19461
Revises:
Create Date: 2025-03-05 10:55:41.951838

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '30d819e19461'
down_revision = None
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('user',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('email', sa.String(length=120), nullable=False),
sa.Column('password', sa.String(length=256), nullable=False),
sa.Column('first_name', sa.String(length=120), nullable=False),
sa.Column('last_name', sa.String(length=120), nullable=False),
sa.Column('birthdate', sa.String(length=80), nullable=False),
sa.Column('country', sa.String(length=120), nullable=False),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('email')
)
op.create_table('accounts',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(length=80), nullable=False),
sa.Column('balance', sa.Float(), nullable=False),
sa.Column('coin', sa.String(), nullable=False),
sa.Column('type', sa.String(), nullable=False),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
sa.PrimaryKeyConstraint('id')
)
op.create_table('account_details',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('accounts_id', sa.Integer(), nullable=False),
sa.Column('detail', sa.String(length=80), nullable=False),
sa.Column('amount', sa.Float(), nullable=False),
sa.Column('coin', sa.String(length=120), nullable=False),
sa.Column('type', sa.String(length=80), nullable=False),
sa.Column('date', sa.String(length=80), nullable=False),
sa.Column('time', sa.String(length=80), nullable=False),
sa.ForeignKeyConstraint(['accounts_id'], ['accounts.id'], ),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('account_details')
op.drop_table('accounts')
op.drop_table('user')
# ### end Alembic commands ###
34 changes: 34 additions & 0 deletions migrations/versions/e63597c30f77_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""empty message

Revision ID: e63597c30f77
Revises: 30d819e19461
Create Date: 2025-03-07 11:53:02.566692

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'e63597c30f77'
down_revision = '30d819e19461'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('user', schema=None) as batch_op:
batch_op.drop_column('country')
batch_op.drop_column('birthdate')

# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('user', schema=None) as batch_op:
batch_op.add_column(sa.Column('birthdate', sa.VARCHAR(length=80), autoincrement=False, nullable=False))
batch_op.add_column(sa.Column('country', sa.VARCHAR(length=120), autoincrement=False, nullable=False))

# ### end Alembic commands ###
4 changes: 3 additions & 1 deletion src/api/admin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

import os
from flask_admin import Admin
from .models import db, User
from .models import db, User, Accounts, Account_details
from flask_admin.contrib.sqla import ModelView

def setup_admin(app):
Expand All @@ -12,6 +12,8 @@ def setup_admin(app):

# Add your models here, for example this is how we add a the User model to the admin
admin.add_view(ModelView(User, db.session))
admin.add_view(ModelView(Accounts, db.session))
admin.add_view(ModelView(Account_details, db.session))

# You can duplicate that line to add mew models
# admin.add_view(ModelView(YourModelName, db.session))
Loading