diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index fcd85b72..8b137891 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -1,28 +1 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python -name: Python application - -on: [push, pull_request] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.10 - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Test with Unittest - run: | - python tests.py diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..d61d8686 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "Trivia-Forge", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/package.json @@ -0,0 +1 @@ +{} diff --git a/trivia-forge/backend/__pycache__/config.cpython-310.pyc b/trivia-forge/backend/__pycache__/config.cpython-310.pyc new file mode 100644 index 00000000..922ee1cb Binary files /dev/null and b/trivia-forge/backend/__pycache__/config.cpython-310.pyc differ diff --git a/trivia-forge/backend/__pycache__/model.cpython-310.pyc b/trivia-forge/backend/__pycache__/model.cpython-310.pyc new file mode 100644 index 00000000..472fe1b6 Binary files /dev/null and b/trivia-forge/backend/__pycache__/model.cpython-310.pyc differ diff --git a/trivia-forge/backend/app.py b/trivia-forge/backend/app.py new file mode 100644 index 00000000..7e0f82cb --- /dev/null +++ b/trivia-forge/backend/app.py @@ -0,0 +1,11 @@ +import os +from flask import Flask, render_template, json, redirect + +app = Flask(__name__) + +SUPABASE_URL = os.getenv('SUPABASE_URL') +SUPABASE_ANON_KEY = os.getenv('SUPABASE_ANON_KEY') + +@app.route('/') +def home(): + return 'Hello, World!' diff --git a/trivia-forge/backend/config.py b/trivia-forge/backend/config.py new file mode 100644 index 00000000..de099d19 --- /dev/null +++ b/trivia-forge/backend/config.py @@ -0,0 +1,22 @@ +#from flask_sqlalchemy import SQLAlchemy +from flask import Flask +#from flask_cors import CORS +from supabase import create_client, Client +#from sqlalchemy.orm import sessionmaker +from dotenv import dotenv_values + +def create_app(): + + app = Flask(__name__) + config = dotenv_values("./.env") + url: str = config.get('SUPABASE_URL') + #print("url:",url) + key: str = config.get('SUPABASE_KEY') + #print("key:",key) + supabase: Client = create_client(url, key) + app.config['Client'] = supabase + return app + + +if __name__ == '__main__': + create_app() diff --git a/trivia-forge/backend/main.py b/trivia-forge/backend/main.py new file mode 100644 index 00000000..48e02371 --- /dev/null +++ b/trivia-forge/backend/main.py @@ -0,0 +1,46 @@ +from flask import Flask, request, jsonify +from config import create_app +from dotenv import load_dotenv + +app = create_app() + +def test_supabase_connection(): + try: + # Replace 'your_table' with an actual table name to test fetching data + supabase = app.config['Client'] # Ensure this is consistent across your app + data = supabase.table("Users").select("*").execute() + if data: + print("Data fetched successfully:", data.data) + return True, "Database connection was successful." + + print("Failed to fetch data:", data.error_message) + return False, data.error_message + except Exception as e: + print("An error occurred during the database connection:", e) + return False, str(e) +def serialize_user(user): + """Convert user dictionary to a JSON serializable format.""" + return { + "id": user.get("id"), + "name": user.get("name"), + "email": user.get("email") + # Add more fields as needed based on your database structure + } + +@app.route("/users", methods=['GET','POST']) +def get_users(): + supabase = app.config['Client'] + data = supabase.table("Users").select("*").execute() + users = data.data + # Assuming you have a function to serialize data as JSON + return jsonify([serialize_user(user) for user in users]) + +@app.route("/test", methods=['GET']) +def test(): + success, message = test_supabase_connection() + return jsonify({"success": success, "message": message}) + + + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/trivia-forge/backend/model.py b/trivia-forge/backend/model.py new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/trivia-forge/backend/model.py @@ -0,0 +1 @@ + diff --git a/trivia-forge/.eslintrc.cjs b/trivia-forge/frontend/.eslintrc.cjs similarity index 100% rename from trivia-forge/.eslintrc.cjs rename to trivia-forge/frontend/.eslintrc.cjs diff --git a/trivia-forge/.gitignore b/trivia-forge/frontend/.gitignore similarity index 100% rename from trivia-forge/.gitignore rename to trivia-forge/frontend/.gitignore diff --git a/trivia-forge/README.md b/trivia-forge/frontend/README.md similarity index 100% rename from trivia-forge/README.md rename to trivia-forge/frontend/README.md diff --git a/trivia-forge/index.html b/trivia-forge/frontend/index.html similarity index 100% rename from trivia-forge/index.html rename to trivia-forge/frontend/index.html diff --git a/trivia-forge/package-lock.json b/trivia-forge/frontend/package-lock.json similarity index 100% rename from trivia-forge/package-lock.json rename to trivia-forge/frontend/package-lock.json diff --git a/trivia-forge/package.json b/trivia-forge/frontend/package.json similarity index 100% rename from trivia-forge/package.json rename to trivia-forge/frontend/package.json diff --git a/trivia-forge/public/vite.svg b/trivia-forge/frontend/public/vite.svg similarity index 100% rename from trivia-forge/public/vite.svg rename to trivia-forge/frontend/public/vite.svg diff --git a/trivia-forge/src/App.css b/trivia-forge/frontend/src/App.css similarity index 100% rename from trivia-forge/src/App.css rename to trivia-forge/frontend/src/App.css diff --git a/trivia-forge/src/App.jsx b/trivia-forge/frontend/src/App.jsx similarity index 100% rename from trivia-forge/src/App.jsx rename to trivia-forge/frontend/src/App.jsx diff --git a/trivia-forge/src/Components/BootstrapTable.jsx b/trivia-forge/frontend/src/Components/BootstrapTable.jsx similarity index 100% rename from trivia-forge/src/Components/BootstrapTable.jsx rename to trivia-forge/frontend/src/Components/BootstrapTable.jsx diff --git a/trivia-forge/src/Components/Nav.jsx b/trivia-forge/frontend/src/Components/Nav.jsx similarity index 100% rename from trivia-forge/src/Components/Nav.jsx rename to trivia-forge/frontend/src/Components/Nav.jsx diff --git a/trivia-forge/src/Pages/HomePage.jsx b/trivia-forge/frontend/src/Pages/HomePage.jsx similarity index 100% rename from trivia-forge/src/Pages/HomePage.jsx rename to trivia-forge/frontend/src/Pages/HomePage.jsx diff --git a/trivia-forge/src/Pages/MyTrivia.jsx b/trivia-forge/frontend/src/Pages/MyTrivia.jsx similarity index 100% rename from trivia-forge/src/Pages/MyTrivia.jsx rename to trivia-forge/frontend/src/Pages/MyTrivia.jsx diff --git a/trivia-forge/src/Pages/TriviaGenPage.jsx b/trivia-forge/frontend/src/Pages/TriviaGenPage.jsx similarity index 100% rename from trivia-forge/src/Pages/TriviaGenPage.jsx rename to trivia-forge/frontend/src/Pages/TriviaGenPage.jsx diff --git a/trivia-forge/src/Pages/TriviaReviewPage.jsx b/trivia-forge/frontend/src/Pages/TriviaReviewPage.jsx similarity index 100% rename from trivia-forge/src/Pages/TriviaReviewPage.jsx rename to trivia-forge/frontend/src/Pages/TriviaReviewPage.jsx diff --git a/trivia-forge/src/assets/react.svg b/trivia-forge/frontend/src/assets/react.svg similarity index 100% rename from trivia-forge/src/assets/react.svg rename to trivia-forge/frontend/src/assets/react.svg diff --git a/trivia-forge/src/index.css b/trivia-forge/frontend/src/index.css similarity index 100% rename from trivia-forge/src/index.css rename to trivia-forge/frontend/src/index.css diff --git a/trivia-forge/src/main.jsx b/trivia-forge/frontend/src/main.jsx similarity index 100% rename from trivia-forge/src/main.jsx rename to trivia-forge/frontend/src/main.jsx diff --git a/trivia-forge/vite.config.js b/trivia-forge/frontend/vite.config.js similarity index 100% rename from trivia-forge/vite.config.js rename to trivia-forge/frontend/vite.config.js