Logo Lanfrica

andrewstevenboima/sca-opportunities

Domain:

educationsocioeconomic

Record type:

software
Creator:
and
Host:
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 …