First off, thank you for considering contributing to the Learning Library Engine! It's people like you that make open-source such a great community.
Since this project runs on Google Apps Script, the development workflow is slightly different than a traditional web app.
- Fork this repository to your own GitHub account.
- Clone your fork locally or open it in a GitHub Codespace.
- Run
npm run setupto authenticate with Google and create a bound Apps Script project in your own Google Drive. - Run
npm run opento open your local instance in the Google Apps Script editor.
- Create a new branch for your feature or bug fix:
git checkout -b feature/my-awesome-feature. - Make your changes in the
.jsor.htmlfiles locally. - Push your changes to your Google Apps Script project to test them:
npm run deploy
- Test your changes thoroughly in your own Google Workspace environment.
- Commit your changes locally:
git commit -m "feat: added an awesome new feature". - Push your branch to your fork on GitHub:
git push origin feature/my-awesome-feature. - Open a Pull Request against the
mainbranch of this repository. - Provide a clear description of the problem you are solving and the solution you have implemented. If your change affects the UI, please include screenshots!
- Backend:
Code.jsand*Service.jsfiles handle the business logic, API calls to Gemini, and Google Drive/Sheets scaffolding. - Frontend:
*Page.html,Index.html, andWizard.htmlare served via thedoGetfunction inWebApp.js. - AI Integration:
GeminiService.jshandles all prompt construction and API communication with Google AI Studio.
- We use vanilla JavaScript (ES6+ features supported by V8).
- We do not use TypeScript or build tools (Webpack/Babel) to keep the barrier to entry as low as possible for educators and community builders.
- Please comment your code clearly, especially when dealing with complex Google Workspace APIs or AI prompts.
Thank you for contributing!