Curated opportunities for African undergraduates. A Student Companion AI product.
# SCA Opportunities
A curated job and opportunity platform for African undergraduate students.
A product of **Student Companion AI** (studentcompanionai.xyz).
**Stack:** Static site (HTML/CSS/JS) hosted on GitHub Pages + Google Sheets backend powered by Google Apps Script. No build step. No framework. No monthly cost.
---
## What you're getting
- **Public-facing site** with opportunities browsable by category, location, and year of study.
- **Google Sheet as your admin panel** — add a row, the site updates on next page load.
- **Email signup** that writes to a separate Subscribers tab in the same Sheet.
- **Fallback mode** — if the Apps Script URL isn't configured yet, the site loads sample data from `opportunities.json` so you can preview before full setup.
---
## File structure
```
sca-platform/
├── index.html # main page
├── styles.css # white/gold editorial design
├── script.js # frontend logic
├── opportunities.json # fallback sample data (22 real programs)
├── Code.gs # Google Apps Script backend
├── assets/
│ └── logo.png # Student Companion AI logo
└── README.md # this file
```
---
## Setup — 4 steps, ~20 minutes
### Step 1 — Create the Google Sheet
1. Go to sheets.google.com and create a new Sheet named **SCA Opportunities Database**.
2. Rename the first tab to exactly `Opportunities` (capital O, no space).
3. Add these column headers in row 1, in this exact order:
```
id | category | title | organization | location | remote | deadline | eligibility_year | eligibility_nationality | field | tags | description | apply_link | source | status | date_posted
```
4. Create a second tab named exactly `Subscribers` with these headers:
```
email | consent_timestamp | source_page
```
5. Copy your Sheet ID from the URL. Example:
`
docs.google.com`**`1aBcDeFgHiJkLmNoPqRsTuVwXyZ`**`/edit`
→ the bolded part is your Shee …