A Google Apps Script web application that manages the full content lifecycle for collaborative learning sessions β from intake through synthesis, AI-powered Gems, a shareable learning library, and pre-session email.
This project is open-source and ready for you to deploy and customize for your own organization or community.
Since this is a Google Apps Script project, you don't need a traditional server to run it. Google hosts it entirely for free within your Google Workspace or Gmail account.
The easiest way to build and manage this project is by using clasp (Command Line Apps Script Projects), a tool provided by Google.
If you have a GitHub account, you can deploy this entirely in your browser without installing anything on your computer.
- Click the green Code button at the top of this repository.
- Select the Codespaces tab and click Create codespace on main (or
open-source-ready). - Wait for the cloud editor to load (it takes about a minute).
- Once it's loaded, a terminal will open at the bottom. Type the following command and press Enter:
npm run setup
- Follow the interactive prompts to log into Google, create your project, and push the code!
- Once finished, type
npm run opento open your new Google Sheet and follow Step 7 below.
If you prefer to work locally on your own machine:
- A Google Account (Workspace/GSuite is recommended, but a standard Gmail works).
- Node.js installed on your computer.
- Your own Gemini API Key. You can get a free one from Google AI Studio.
Open your terminal and clone this repository:
git clone https://github.com/inquiredu/LearningLibrary.git
cd LearningLibraryWe've included an automated setup script that will handle installing clasp, authenticating you, creating the project, and pushing the code.
npm run setup(If the script doesn't run automatically, ensure you have permissions by typing chmod +x setup.sh first).
Before you start using the app, you need to configure your domain and branding.
- Open
Config.jsin your editor. - Update the
ALLOWED_DOMAINto your organization's Google Workspace domain (e.g.,'yourdomain.org'). If you are using a standard Gmail account or want it open to any signed-in Google user, set it to''. - Update
APP_NAMEandDISPLAY_TIMEZONEto match your needs. - If you made changes, save the file and run
clasp pushagain.
- Open the newly created Google Sheet. You can open it directly from the terminal with:
(Select the "Spreadsheet" option if prompted).
clasp open
- In the Google Sheet, wait a few seconds. A new custom menu called "Learning Library Engine" will appear next to "Help".
- Click Learning Library Engine β βοΈ Initial Setup.
- A prompt will appear asking for Authorization. Follow the steps to grant the script permission to run. (Note: You may see a "Google hasn't verified this app" warning. This is normal for scripts you build yourself. Click "Advanced" and "Go to Learning Library Engine (unsafe)" to continue).
- The Setup Wizard will open. Paste your Gemini API Key. You can optionally provide a Google Drive Folder ID where you want all session folders to be stored. Click Save Configuration.
To make the dashboard, wizard, and public library pages accessible, you must deploy the script as a Web App.
- From the Apps Script editor (which you can open with
clasp open), look at the top right corner and click Deploy β New deployment. - Click the gear icon βοΈ next to "Select type" and choose Web app.
- Configuration:
- Description: "v1 - Initial Release" (or whatever you like)
- Execute as:
Me (your email) - Who has access:
Anyone(Note:Config.jscontrols who can actually view the dashboard; setting this to "Anyone" ensures that the public Library links work for external guests).
- Click Deploy.
- Copy the Web app URL (it ends in
/exec). This is the link you and your team will use to access the dashboard!
This project is built using standard HTML, CSS, and Vanilla JavaScript.
Development Workflow:
- Make changes to the
.jsor.htmlfiles in your local editor (VS Code, Cursor, etc.). - Run
clasp pushto send the changes to Google Apps Script. - Refresh your Web App (or run
clasp opento test specific functions).
Note: When you make changes to HTML files or routing (WebApp.js), you must create a new deployment version for those changes to appear on the live /exec URL. You can use the /dev URL during development (available in the Apps Script editor under Deploy β Test deployments) to bypass creating new versions for every little change.
- Wizard: New Session form creates Drive folders, Master Sheet row, Gemini session brief
- Synthesis: Gemini analysis of each resource
- Gems: AI persona prompt structures
- Library: Shareable learning library page per session
- Email: Gemini-drafted pre-session email