Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Every response from a survey is a signal TODD reads it so you do not have to
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Pulse is 16Ahead's survey product: write a short pulse of focused questions, share a link, and read the answers as a decision rather than a pile of responses. Built by Taliferro Tech as part of the 16Ahead product family.
Live: pulse.16ahead.com · iOS twin: apps/ios/pulse-ios (Pulsur, native Swift, separate repo)
| Piece | What it is |
|---|---|
| This repo | Angular 19 standalone-component app (Bootstrap 5, Font Awesome). Public pages are prerendered at build time; everything else renders in the browser. |
@taliferro/ui | Shared menu, footer, theme and product-page components used by every Taliferro web product. Installed from a sibling checkout (file:../../taliferro-ui), not from npm. |
Firebase project taliferrotech | Shared by the 16Ahead hub and all its products. Pulse uses Firebase Auth (session), Firestore (users/{uid} for tenant lookup), and Hosting (site todd-pulse). |
https://api.taliferro.tech/api | The shared 16Ahead backend. Surveys, public survey/response endpoints, profile, account/billing, checkout, onboarding and the in-app assistant. |
| 16Ahead hosted login | Sign-in isn't done in this app. /login sends people to the hub's hosted login (app.16ahead.com/login?client=pulse-web on 16ahead.com hosts, the legacy todd.taliferro.tech/login on localhost and taliferro.tech hosts; see hostedLoginUrl in @taliferro/ui/platform/hosted-login.model), which returns a custom token to /auth/callback. |
npx ng … and the npm scripts work without a global installnpm i -g firebase-tools) — runs the emulators for the end-to-end tests; no Firebase login is needed for thatbrew install openjdk) — the Firestore emulator used by the end-to-end tests needs ittshowers/pulse and tshowers/taliferro-uitaliferrotech Firebase project. You can run the app and all the tests without it. Deploys are done only by the project owner (see Contributing).@taliferro/ui is resolved from two folders up, so the checkouts have to sit side by side like this or npm install fails:
corporate/
├── taliferro-ui/ # [email protected]:tshowers/taliferro-ui.git
└── web-products/
└── pulse/ # [email protected]:tshowers/pulse.git (this repo)
mkdir -p corporate/web-products && cd corporate
git clone [email protected]:tshowers/taliferro-ui.git
git clone [email protected]:tshowers/pulse.git web-products/pulse
cd web-products/pulse
npm install
npm start # ng serve → http://localhost:4200
The dev server reloads on change. Signing in from localhost uses the hosted-login client pulse-web-local, which hands you back to your local /auth/callback. If sign-in doesn't come back to your machine, check that client's return URL in 16Ahead's hosted-login setup.
There is no .env file and nothing to fill in. All configuration is committed in src/environments/:
environment.ts — used by ng serve and development buildsenvironment.prod.ts — swapped in for production builds (angular.json → fileReplacements)| Key | Used for |
|---|---|
production | Turns on the service worker, version polling and chunk-error recovery |
PLATFORM_URL | Public origin, https://pulse.16ahead.com |
backendURL | 16Ahead backend base URL, https://api.taliferro.tech/api |
apiKey | Bearer key sent to the backend's /app-assistant endpoint |
firebaseConfig | Firebase web config for the taliferrotech project |
taliferroTenantId | The Taliferro admin account; signed-in as this uid shows admin-only UI |
COMPANY_NAME | Display name |
linkPreview | Not currently referenced by the app |
These values ship in the browser bundle anyway (Firebase web config is public by design; security comes from Firestore rules in firestore.rules and backend auth), so they're safe to keep in the repo. Don't add real secrets here.
Heads-up: local development talks to production. Both environment files point at the live
taliferrotechFirebase project and the liveapi.taliferro.techbackend. Surveys you create while running locally are real data in your real account. The only isolated setup is the end-to-end tests, which run against the Firebase emulators.
Pulse calls these backend routes (all under backendURL). Signed-in requests carry a Firebase ID token plus X-Tenant-Id / X-User-Id headers (src/app/core/interceptors/id-token.interceptor.ts, src/app/services/pulse-tenant.interceptor.ts).
| Route | Purpose |
|---|---|
/surveys | Create, list, read, update, delete the signed-in tenant's pulses |
/public/surveys/:id, /public/surveys/:id/responses | Respondent view (/take/:id) and submitting answers — no sign-in |
/profile, /onboarding/profile, /getting-started/pulse | Profile and first-run setup |
/account | Plan and billing state |
/survey/checkout, /survey/checkout/confirm | Web subscription checkout |
/app-assistant | General Assistant |
The backend lives in its own repo, taliferro-tech/taliferrotech (Firebase Functions; older code comments call it todd-backend). Changing an endpoint is done and deployed there, not here.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗