Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toolshare

The CU Boulder Faculty AI Exchange — a pilot with the Research & Innovation Office, live at arpg.colorado.edu/toolshare (CU Boulder Google SSO required).

Faculty, staff, and students share AI tools, skills, and workflows: bare links, blog-style write-ups, small file artifacts (Claude skill files, prompt templates, scripts), and GitHub repo cards with live metadata. Entries are up/down-voted and discussed, the front page segments by Beginner / Intermediate / Advanced, and a vote-weighted leaderboard ranks contributors. First login runs a short one-time survey (how tools are paid for, what's in use, comfort level) whose aggregates inform RIO — individual answers are never shown.

Architecture

  • backend/toolshare_app/ — FastAPI + SQLAlchemy (async SQLite). The package runs two ways:
    • Standalone (current): toolshare_app.main:app behind gunicorn on :8001, with its own Google OAuth routes (@colorado.edu gate) at /toolshare/auth/*. See deployment/ for the systemd unit, nginx locations, and deploy script.
    • Integrated: integrate.py can mount the API inside an existing FastAPI host app under /api/toolshare/*, reusing the host's session — how the pilot launched before it had its own service (MIGRATION.md).
  • frontend/ — React 18 + Vite SPA, hash-routed so it can be hosted as plain static files. Markdown rendered with react-markdown (no raw HTML passthrough). Editorial "faculty gazette" design.
  • deployment/ — pilot deploy script, standalone systemd/nginx configs, and the pilot→standalone migration guide.

Safety details: uploads are extension-allowlisted, size-capped, stored under random names, and always served as Content-Disposition: attachment + application/octet-stream + nosniff; votes are unique per user; moderation is post-first with env-configured admins.

Local development

cd backend
python3.12 -m venv .venv && .venv/bin/pip install -r requirements.txt
cp .env.example .env   # use the "Local development" block; set DEV_FAKE_USER
.venv/bin/uvicorn toolshare_app.main:app --port 8001

cd ../frontend
npm install && npm run dev   # http://localhost:5173/toolshare/, "Dev sign-in"

License

Not yet chosen — contact ARPG before reuse.

About

CU Boulder Faculty AI Exchange — RIO pilot (FastAPI + React)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages