c-programming-series
This repo showcases The Coders Club's C Programming Series web app (MCE). It features weekly content, a dynamic quiz, feedback, and leaderboard, built with "VibeCoding" (Copilot, Gemini) and integrated with Google Sheets.
AI Summary
C Programming Series Application
A front-end template for a C Programming learning series that delivers weekly content, quizzes and feedback forms, and records submissions to Google Sheets via Apps Script.
Target Users
Intermediate developers managing educational sites who want to run learning content and quizzes server-lessly with Google Apps Script.
Problems Solved
Delivering educational content and collecting quiz responses without maintaining a server requires writing multiple pages and wiring them to a backend.
Tags
Main Features
Ready-to-use Static Pages
Provides complete HTML/CSS for home, weekly content, quizzes, feedback and leaderboard pages, enabling instant deployment.
Content Gating with Visual Cues
Weeks or specific days can be blurred and jumbled to indicate "coming soon", letting maintainers announce yet restrict access.
Single-Function Apps Script Backend
A generic doPost function deployed as a Google Apps Script web app stores quiz and feedback submissions directly in Google Sheets.
Usage Examples
Apps Script to Write Form Data to Google Sheets
/**
* Appends a new row for every POST request coming
* from the quiz or feedback forms.
*/
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
const row = [];
// Optional timestamp column
row.push(new Date());
headers.forEach(header => {
if (header.toLowerCase() === 'timestamp') return; // skip if present
row.push(e.parameter[header] || '');
});
sheet.appendRow(row);
return ContentService.createTextOutput(JSON.stringify({
result: 'success',
row: sheet.getLastRow(),
})).setMimeType(ContentService.MimeType.JSON);
}
Paste this script into a Google Sheets–bound Apps Script project and deploy it as a Web App. The provided quiz.html
, finalquiz.html
, and feedback.html
can then fetch
to the Web App URL; matching parameter names are written to the corresponding columns automatically.