Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
20df4f1
Implemented Gym Equipment Categories
JoshD94 Oct 30, 2024
09c00cf
Implemented migration scripts
JoshD94 Nov 4, 2024
ce2a428
Implemented changes on migration based on PR
JoshD94 Nov 6, 2024
83762e3
Removed test column in users for migration
JoshD94 Nov 6, 2024
d94a98f
Removed dotenv usage
JoshD94 Nov 6, 2024
5715f8a
Merge pull request #169 from cuappdev/migrate-dev-server
JoshD94 Nov 6, 2024
b7ab023
Adding migration
JoshD94 Nov 8, 2024
96a01f7
Merge pull request #170 from cuappdev/migrate-dev-server
JoshD94 Nov 10, 2024
fa8e58f
Migration: moved scrapers under condition
JoshD94 Nov 10, 2024
a102935
Merge pull request #171 from cuappdev/migrate-dev-server
JoshD94 Nov 10, 2024
2d73670
Added migrate to app.py
JoshD94 Nov 10, 2024
d30cb21
Merge pull request #172 from cuappdev/migrate-dev-server
JoshD94 Nov 11, 2024
404e39c
Implemented new migration script
JoshD94 Nov 13, 2024
068a760
Merge pull request #173 from cuappdev/migrate-dev-server
JoshD94 Nov 17, 2024
f7941eb
Moved import lines with constant.py into main
JoshD94 Nov 17, 2024
164ffb1
Merge pull request #174 from cuappdev/migrate-dev-server
JoshD94 Nov 18, 2024
9cb88ec
Edited dev workflow file and dockerfile
JoshD94 Nov 18, 2024
521c580
Merge pull request #175 from cuappdev/migrate-dev-server
JoshD94 Nov 18, 2024
7d38e45
Moved migration execution to dev server
JoshD94 Nov 20, 2024
1a62c98
Added updated migrations file
JoshD94 Nov 20, 2024
18ee9d9
Merge pull request #176 from cuappdev/migrate-dev-server
JoshD94 Nov 20, 2024
dcd6d05
Changed github workflow file to try migrations 5 times
JoshD94 Nov 20, 2024
c7794d0
Merge pull request #177 from cuappdev/migrate-dev-server
JoshD94 Nov 20, 2024
7f287f3
Removed alembic dependency to previous migrations
JoshD94 Nov 20, 2024
f5c9379
Merge pull request #178 from cuappdev/migrate-dev-server
JoshD94 Nov 20, 2024
9f92efe
Reverted scrapers to run without main
JoshD94 Nov 21, 2024
543baa7
Merge pull request #179 from cuappdev/migrate-dev-server
JoshD94 Nov 23, 2024
43049b0
Created migration mode in app
JoshD94 Nov 24, 2024
1188f4e
Merge pull request #180 from cuappdev/migrate-dev-server
JoshD94 Nov 26, 2024
bdb4acd
Added main process condition
JoshD94 Nov 26, 2024
b01ab73
Simplified running condition
JoshD94 Nov 26, 2024
6c38e34
Readded scraping comments
JoshD94 Nov 26, 2024
11ee72a
Fixed scraping comments
JoshD94 Nov 26, 2024
add86cb
Modified run condition again
JoshD94 Nov 26, 2024
402bb98
Merge pull request #181 from cuappdev/migrate-dev-server
JoshD94 Nov 29, 2024
d5da9f4
Fixed capacity scraper to scrape from new URL
JoshD94 Jan 25, 2025
5744933
Removed new checkin model code, will push later
JoshD94 Jan 25, 2025
864badc
Merge pull request #182 from cuappdev/capacity-rework-fix
JoshD94 Jan 26, 2025
d59b97c
initial commit
Feb 5, 2025
5e0e077
add migration
Feb 12, 2025
1877f58
Update capacities_scraper.py
sophiestrausberg Feb 12, 2025
9067a30
Added user streaks including their current and max streaks
TushigBili Feb 13, 2025
c944583
Removed users from reports
JoshD94 Feb 13, 2025
dcfeb01
add error handling to update_hourly_capacity call
Feb 15, 2025
4c52249
Merge branch 'sophie/popular-times' of https://github.com/cuappdev/up…
Feb 15, 2025
4dc638b
Added a couple lines to account for special hours for when facilities…
TushigBili Feb 15, 2025
efa6423
Merge pull request #188 from cuappdev/special-hours-change
TushigBili Feb 16, 2025
2cd1a58
Merge pull request #187 from cuappdev/reporting-remove-user
JoshD94 Feb 19, 2025
f64e211
Merge pull request #185 from cuappdev/sophie/popular-times
sophiestrausberg Feb 19, 2025
c881c97
Refactored app running and migrations
JoshD94 Feb 26, 2025
5b364ab
Initialized Migrations
JoshD94 Feb 26, 2025
8faecdc
merge changes from master
TushigBili Feb 26, 2025
d207ab5
Moved sentry initialization to app
JoshD94 Feb 26, 2025
bae6d1a
Changed things mentioned in comments, updating naming for consistency
TushigBili Feb 26, 2025
3d9ed74
Removed gunicorn and only run sentry on dev/prod
JoshD94 Feb 26, 2025
900ec38
Merge pull request #189 from cuappdev/joshua-refactor
JoshD94 Feb 26, 2025
fd57abb
Added versions directory for migrations
JoshD94 Feb 28, 2025
1b2ff5b
Merge pull request #190 from cuappdev/joshua-refactor
JoshD94 Feb 28, 2025
b42f589
Update app.py
Aayush-Agnihotri Feb 28, 2025
a5d5874
Delete .github/workflows/test.yml
Aayush-Agnihotri Feb 28, 2025
408b4b5
update migrations
Mar 1, 2025
4f39a2a
Merge pull request #191 from cuappdev/sophie/popular-times
TushigBili Mar 2, 2025
7682b4b
Added delete user by id mutation
JoshD94 Mar 2, 2025
8a1affd
Merge pull request #192 from cuappdev/joshua-refactor
JoshD94 Mar 2, 2025
6530819
popular times fix
Mar 3, 2025
ab33064
Merge pull request #193 from cuappdev/popular-times-fix
sophiestrausberg Mar 3, 2025
0ff54ac
Merge new updates
TushigBili Mar 5, 2025
2a1820f
Added migration file
TushigBili Mar 5, 2025
dcb94eb
Merge pull request #186 from cuappdev/user-streaks
TushigBili Mar 5, 2025
e0fe8b9
Remove report lines from migrations file
TushigBili Mar 5, 2025
9ded3d7
Remove report lines from migrations file
TushigBili Mar 5, 2025
42b0d6f
Recommented lines
TushigBili Mar 5, 2025
4936406
Merge pull request #194 from cuappdev/user-streaks
TushigBili Mar 6, 2025
0d3569f
initial commit
Mar 7, 2025
112cce5
Merge branch 'master' of https://github.com/cuappdev/uplift-backend i…
Mar 7, 2025
1d86a92
Added facility id field to workout
JoshD94 Mar 7, 2025
9253679
add mutation
Mar 7, 2025
60d0989
reformat
Mar 7, 2025
75cf210
adjust login mutation
Mar 7, 2025
f9a5859
Merge pull request #195 from cuappdev/add-fitness-field
JoshD94 Mar 7, 2025
c6eccaa
resolved merge conflicts
Mar 12, 2025
3cdd610
update migration file
Mar 12, 2025
0b3e413
Merge pull request #196 from cuappdev/sophie/auth
sophiestrausberg Mar 12, 2025
db73b5b
Added photo storing for users
TushigBili Mar 17, 2025
acc684a
Merge pull request #197 from cuappdev/user-streaks
TushigBili Mar 19, 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
4 changes: 2 additions & 2 deletions .github/workflows/deploy-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ jobs:
touch tags
source tags
export IMAGE_TAG=${{ steps.vars.outputs.sha_short }}
echo "export IMAGE_TAG=${IMAGE_TAG}" > tags
cd docker-compose
docker stack rm the-stack
sleep 20s
sudo systemctl stop nginx
sudo systemctl restart nginx
docker stack deploy -c docker-compose.yml the-stack --with-registry-auth
yes | docker system prune -a
sleep 60s
yes | docker system prune -a
54 changes: 0 additions & 54 deletions .github/workflows/test.yml

This file was deleted.

1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ build/
*.DS_Store
.env
.envrc
migrations
.vscode
Archive
scripts
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ COPY . .
ENV MAX_CONCURRENT_PIP=4
RUN pip3 install --upgrade pip
RUN pip3 install --exists-action w -r requirements.txt
CMD python3 app.py
CMD flask --app migrations db upgrade && python3 app.py
Binary file added app.db
Binary file not shown.
114 changes: 12 additions & 102 deletions app.py
Original file line number Diff line number Diff line change
@@ -1,107 +1,17 @@
import logging
from app_factory import create_app
import sentry_sdk
from flask import Flask, render_template
from flask_apscheduler import APScheduler
from flask_graphql import GraphQLView
from graphene import Schema
from graphql.utils import schema_printer
from src.database import db_session, init_db
from src.schema import Query, Mutation
from src.scrapers.capacities_scraper import fetch_capacities
from src.scrapers.reg_hours_scraper import fetch_reg_building, fetch_reg_facility
from src.scrapers.scraper_helpers import clean_past_hours
from src.scrapers.sp_hours_scraper import fetch_sp_facility
from src.scrapers.equipment_scraper import scrape_equipment
from src.scrapers.class_scraper import fetch_classes
from src.scrapers.activities_scraper import fetch_activity
from src.utils.utils import create_gym_table
from src.models.openhours import OpenHours
from flasgger import Swagger
import os

# Initialize Sentry only if not in local
if os.environ.get('FLASK_ENV') in ["development", "production"]:
sentry_sdk.init(
dsn="https://2a96f65cca45d8a7c3ffc3b878d4346b@o4507365244010496.ingest.us.sentry.io/4507850536386560",
traces_sample_rate=1.0,
profiles_sample_rate=1.0,
)

sentry_sdk.init(
dsn="https://2a96f65cca45d8a7c3ffc3b878d4346b@o4507365244010496.ingest.us.sentry.io/4507850536386560",
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for tracing.
traces_sample_rate=1.0,
# Set profiles_sample_rate to 1.0 to profile 100%
# of sampled transactions.
# We recommend adjusting this value in production.
profiles_sample_rate=1.0,
)

app = Flask(__name__)
app.debug = True
schema = Schema(query=Query, mutation=Mutation)
swagger = Swagger(app)

# Scheduler
scheduler = APScheduler()
scheduler.init_app(app)
scheduler.start()

# Logging
logging.basicConfig(format="%(asctime)s %(levelname)-8s %(message)s", level=logging.INFO, datefmt="%Y-%m-%d %H:%M:%S")


@app.route("/")
def index():
return render_template("index.html")


app.add_url_rule("/graphql", view_func=GraphQLView.as_view("graphql", schema=schema, graphiql=True))


@app.teardown_appcontext
def shutdown_session(exception=None):
db_session.remove()


# Scrape hours every 15 minutes
@scheduler.task("interval", id="scrape_hours", seconds=900)
def scrape_hours():
logging.info("Scraping hours from sheets...")

# Clear hours
db_session.query(OpenHours).delete()

fetch_reg_facility()
fetch_reg_building()
fetch_sp_facility()
clean_past_hours()


# Scrape capacities every 10 minutes
@scheduler.task("interval", id="scrape_capacities", seconds=600)
def scrape_capacities():
logging.info("Scraping capacities from C2C...")

fetch_capacities()


# Scrape classes every hour
@scheduler.task("interval", id="scrape_classes", seconds=3600)
def scrape_classes():
logging.info("Scraping classes from group-fitness-classes...")


fetch_classes(10)


# Create database and fill it with data
init_db()
create_gym_table()
scrape_classes()
scrape_hours()
scrape_capacities()
scrape_equipment()

logging.info("Scraping activities from sheets...")
fetch_activity()
# Create schema.graphql
with open("schema.graphql", "w+") as schema_file:
schema_file.write(schema_printer.print_schema(schema))
schema_file.close()
# Create Flask app with scrapers enabled
app = create_app(run_migrations=False)

if __name__ == "__main__":
app.run(host="127.0.0.1", port=5000)
app.run(host="0.0.0.0", port=5000)
Loading
Loading