{"id":25932614,"url":"https://github.com/sarveshmina/grade-home","last_synced_at":"2025-03-04T00:38:35.066Z","repository":{"id":276894789,"uuid":"930050237","full_name":"SarveshMina/Grade-Home","owner":"SarveshMina","description":"A versatile university grade-tracking and calculator application built with Azure Functions, Vue.js, and Capacitor.","archived":false,"fork":false,"pushed_at":"2025-03-03T17:58:48.000Z","size":1548,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-03T18:45:59.008Z","etag":null,"topics":["azure","capacitor","education","grades","python","vue"],"latest_commit_sha":null,"homepage":"https://example-website.com","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SarveshMina.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-10T01:16:16.000Z","updated_at":"2025-03-03T17:58:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"b633c564-b6f5-431c-b755-635206c7524b","html_url":"https://github.com/SarveshMina/Grade-Home","commit_stats":null,"previous_names":["sarveshmina/grade-home"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarveshMina%2FGrade-Home","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarveshMina%2FGrade-Home/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarveshMina%2FGrade-Home/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SarveshMina%2FGrade-Home/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SarveshMina","download_url":"https://codeload.github.com/SarveshMina/Grade-Home/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241763763,"owners_count":20016161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","capacitor","education","grades","python","vue"],"created_at":"2025-03-04T00:38:34.307Z","updated_at":"2025-03-04T00:38:35.027Z","avatar_url":"https://github.com/SarveshMina.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GradeHome\n\n\u003e A versatile university grade-tracking and calculator application built with **Azure Functions**, **Vue.js**, and **Capacitor**.\n\n![Azure Functions](https://img.shields.io/badge/Azure%20Functions-Python%203.9%2B-blue.svg)\n![Vue.js](https://img.shields.io/badge/Vue.js-3.x-green.svg)\n![Capacitor](https://img.shields.io/badge/Capacitor-Mobile%20App-orange.svg)\n\nGradeHome includes:\n- ✅ Session-based authentication (Azure Functions in Python + Azure Cosmos DB)  \n- ✅ Vue + Capacitor frontend (runs in a browser or as a mobile app)  \n- ✅ Optional Google OAuth integration  \n\n---\n\n## Table of Contents\n1. [Project Structure](#project-structure)  \n2. [Prerequisites](#prerequisites)  \n3. [Backend Setup](#backend-setup)  \n4. [Frontend Setup](#frontend-setup)  \n5. [Environment Variables](#environment-variables)  \n6. [Running the App](#running-the-app)  \n7. [Deployment](#deployment)  \n8. [License](#license)\n\n---\n\n## Project Structure\n\n```\nGradeHome/\n├── backend/                # Azure Functions backend (Python)\n│   ├── function_app.py     # Main Azure Functions entry point\n│   ├── user_routes.py      # Session-based authentication\n│   ├── google_auth.py      # Google OAuth logic\n│   ├── database.py         # Cosmos DB integration\n│   ├── models.py           # Pydantic models\n│   ├── requirements.txt    # Python dependencies\n│   └── ...                 # Additional backend files\n│\n├── filter/                 # (Optional / unused if empty)\n│\n├── gradehome-frontend/     # Frontend (Vue + Capacitor)\n│   ├── android/            # Android Capacitor project\n│   ├── ios/                # iOS Capacitor project\n│   ├── public/             # Static assets\n│   ├── src/                # Vue source code\n│   │   ├── assets/         \n│   │   ├── components/     \n│   │   ├── plugins/        \n│   │   ├── services/       \n│   │   ├── views/          \n│   │   ├── App.vue         \n│   │   ├── main.js         \n│   │   ├── router.js       \n│   │   └── style.css       \n│   ├── package.json        \n│   ├── vite.config.js      \n│   └── ...                 # Additional configs\n│\n└── .gitignore\n```\n\n---\n\n## Prerequisites\n\n### Backend Requirements\n- [Azure Functions Core Tools](https://learn.microsoft.com/azure/azure-functions/functions-run-local)  \n- Python 3.9+ (3.10+ recommended) → [Download Python](https://www.python.org/downloads/)  \n- Azure Cosmos DB or Cosmos DB Emulator → [Docs](https://learn.microsoft.com/azure/cosmos-db/)\n\n### Frontend Requirements\n- Node.js 16+ (Node.js 18 recommended)  \n- npm or yarn for dependency management  \n- Capacitor CLI (optional for mobile builds):\n```bash\nnpm install -g @ionic/cli @capacitor/cli\n```\n\n---\n\n## Backend Setup\n\n1. **Install Python dependencies**:\n   ```bash\n   cd backend\n   python -m venv venv\n   # Windows:\n   venv\\Scripts\\activate\n   # macOS/Linux:\n   source venv/bin/activate\n\n   pip install -r requirements.txt\n   ```\n\n2. **Set environment variables** (example on Windows PowerShell):\n   ```powershell\n   $env:COSMOS_ENDPOINT=\"https://your-cosmos-url/\"\n   $env:COSMOS_KEY=\"your-cosmos-key\"\n   $env:COSMOS_DBNAME=\"gradehome-db\"\n   $env:COSMOS_CONTAINER=\"users\"\n   $env:COSMOS_UNI_CONTAINER=\"universities\"\n   $env:GOOGLE_CLIENT_ID=\"your-google-client-id\"\n   $env:GOOGLE_CLIENT_SECRET=\"your-google-client-secret\"\n   $env:GOOGLE_REDIRECT_URI=\"https://your-site.com/auth/google/callback\"\n   $env:FRONTEND_REDIRECT_URL=\"http://localhost:5173/dashboard\"\n   ```\n\n3. **Run the Azure Functions backend**:\n   ```bash\n   func start\n   ```\n   - By default, the API runs on [http://localhost:7071](http://localhost:7071).\n\n---\n\n## Frontend Setup\n\n1. **Install Node.js dependencies**:\n   ```bash\n   cd gradehome-frontend\n   npm install\n   ```\n\n2. **Start the development server**:\n   ```bash\n   npm run dev\n   ```\n   - The frontend runs on [http://localhost:5173](http://localhost:5173).\n\n3. *(Optional)* **Capacitor setup for mobile**:\n   ```bash\n   # For iOS:\n   npx cap add ios\n   npx cap open ios\n\n   # For Android:\n   npx cap add android\n   npx cap open android\n\n   # Sync changes:\n   npx cap sync\n   ```\n\n---\n\n## Environment Variables\n\n| Variable             | Description                           | Example                                         |\n|----------------------|---------------------------------------|-------------------------------------------------|\n| `COSMOS_ENDPOINT`    | Cosmos DB endpoint URL                | `https://\u003cyour-db-name\u003e.documents.azure.com`    |\n| `COSMOS_KEY`         | Cosmos DB primary key                 | `xxxxxx==`                                      |\n| `COSMOS_DBNAME`      | Your Cosmos DB name                   | `gradehome-db`                                  |\n| `COSMOS_CONTAINER`   | Container for users                   | `users`                                         |\n| `COSMOS_UNI_CONTAINER` | Container for universities          | `universities`                                  |\n| `GOOGLE_CLIENT_ID`   | Google OAuth client ID                | `123456-abcdef.apps.googleusercontent.com`      |\n| `GOOGLE_CLIENT_SECRET` | Google OAuth client secret          | `GOCSPX-xyz`                                    |\n| `GOOGLE_REDIRECT_URI` | Google OAuth callback URL            | `https://your-site.com/auth/google/callback`    |\n| `FRONTEND_REDIRECT_URL` | Frontend redirect after auth success | `http://localhost:5173/dashboard`               |\n\n---\n\n## Running the App\n\n1. **Start the backend**:\n   ```bash\n   cd backend\n   func start\n   ```\n   - Runs on: [http://localhost:7071](http://localhost:7071).\n\n2. **Start the frontend**:\n   ```bash\n   cd gradehome-frontend\n   npm run dev\n   ```\n   - Runs on: [http://localhost:5173](http://localhost:5173).\n\n3. **Test the app**:\n   - Open [http://localhost:5173/](http://localhost:5173/) (Landing Page)\n   - Go to [http://localhost:5173/login](http://localhost:5173/login) (Login/Register)\n   - On success, a session cookie is stored by the backend\n   - Navigate to `/dashboard` to verify authentication\n\n---\n\n## Deployment\n\n### 1. Backend Deployment (Azure Functions)\n- Deploy the backend to Azure Functions.  \n- Configure environment variables in the Azure Function App settings.\n\n### 2. Frontend Deployment\n- **For Web**:\n   ```bash\n   cd gradehome-frontend\n   npm run build\n   ```\n   - Deploy the `dist/` folder to a static site provider (Netlify, Azure Static Web Apps, etc.).\n\n- **For Mobile**:\n   ```bash\n   npx cap copy\n   ```\n   - Open the project in Xcode (iOS) or Android Studio (Android) for final packaging.\n\n---\n\n## License\n\nThis project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.\n\n---\n\n\u003e **Happy coding with GradeHome!**  \n\u003e If you have any questions, feel free to open an issue in the repository. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarveshmina%2Fgrade-home","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarveshmina%2Fgrade-home","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarveshmina%2Fgrade-home/lists"}