A self-hosted time tracking system for CEEO student employees.
- index.html — the student-facing web app (deploy to GitHub Pages at hours.tuftsceeo.org)
- Code.gs — the Google Apps Script backend (handles auth, data storage, weekly report)
- Go to script.google.com and click New project
- Delete any existing code and paste in the contents of
Code.gs - Click the floppy disk icon to save (name it "CEEO Hours")
- In the toolbar, select the function setupSpreadsheet from the dropdown
- Click Run and accept the permissions when prompted
- This creates the Google Sheet with all tabs and fake student data
- It also sets up the Sunday 7am weekly report trigger
- Check Logs (View > Logs) to find the URL of the newly created Sheet
- Click Deploy > New deployment
- Click the gear icon next to "Type" and select Web app
- Set:
- Execute as: Me
- Who has access: Anyone
- Click Deploy
- Copy the Web app URL that appears
- Open
index.html - Find the line:
const SCRIPT_URL = 'PASTE_YOUR_APPS_SCRIPT_URL_HERE'; - Replace
PASTE_YOUR_APPS_SCRIPT_URL_HEREwith the URL from Step 2
- Create a GitHub repository (e.g.
ceeo-hours) - Upload
index.htmlto the repository - Go to Settings > Pages, set source to main branch
- Point
hours.tuftsceeo.orgDNS to GitHub Pages (CNAME record)
Email: test@tuftsceeo.org
Password: password
Open the Google Sheet that was created. The Students tab has:
| Column | Purpose |
|---|---|
| Student's Tufts email | |
| Name | Display name |
| Affiliation | e.g. "Student employee" |
| Project1 | Primary project (required) |
| Project2 | Second project (optional) |
| Project3 | Third project (optional) |
| Password | Only needed for demo/test accounts |
Students only see the projects assigned to them. Add/remove rows any time.
Every Sunday at 7am, an email is sent to the admin address set in Code.gs:
var REPORT_EMAIL = 'admin@tuftsceeo.org';
Change this to the real admin email before going live. The report matches the format of the Kuali report: one row per person per project, with hours.
If you ever need to update Code.gs:
- Make your changes in the Apps Script editor
- Click Deploy > Manage deployments
- Click the pencil icon on your existing deployment
- Change version to New version
- Click Deploy
The URL stays the same.