• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
trevormunoz

trevormunoz

lakeland-timesheet

Public
Like
lakeland-timesheet
Home
Code
18
.git
9
db
6
docs
2
handlers
6
lib
2
slack
5
.env.example
.gitignore
.vtignore
LICENSE
README.md
C
cron.ts
H
main.ts
package-lock.json
package.json
tsconfig.json
valtown.d.ts
vitest.config.ts
Environment variables
3
Branches
1
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
…
README.md

Lakeland Timesheet

A Slack bot for tracking intern work hours on the Lakeland Digital Archive project. Runs on Val Town with SQLite storage.

Slack Commands

Everyone

CommandDescription
/logtimeOpen a form to log time (date, duration, task, project, grant)
/logtime listShow your 5 most recent entries with edit/delete options
/timesheetView the current week's report (only visible to you)
/timesheet 2026-02-17 2026-02-21Report for a specific date range
/timesheet @personReport filtered to one person

Supervisors only

CommandDescription
/timesheet sharePost a formatted report visible to everyone in the channel
/timesheet share 2026-02-17 2026-02-21Share a report for a specific date range
/admin-timesheet listList all projects, grants, task types, and interns
/admin-timesheet add task "Name"Add a task type
/admin-timesheet add project "Name"Add a project
/admin-timesheet add grant "Code" "Name"Add a grant
/admin-timesheet intern add @personRegister an intern for reminders
/admin-timesheet reminder on/offToggle weekly DM reminders

Local Development

npm install npm test # run tests (watch mode) npm run test:run # run tests once npm run check # TypeScript type check

Tests use an in-memory SQLite database via @libsql/client — no setup needed.

Deployment

The app runs as a Val Town HTTP val. Push changes with:

vt push

Environment variables (set as Val Town secrets)

VariableDescription
SLACK_BOT_TOKENBot User OAuth token (xoxb-...)
SLACK_SIGNING_SECRETRequest signing secret from Slack app config
ADMIN_USER_IDSComma-separated Slack user IDs for supervisor commands

Required Slack scopes

chat:write, commands, im:write

AI Assistance

We developed this application using Anthropic's Claude as a generative coding tool, with human direction and review. AI generated implementations, tests, and documentation based on the Slack Block Kit and Val Town APIs. Human maintainers directed requirements, reviewed all outputs, and take full responsibility for the final code.

AI capabilities derive partly from programmers whose public work became training data. Our open-source output depends on proprietary AI infrastructure.

Following Apache and OpenInfra guidance, commits include Co-Authored-By: trailers for AI-assisted contributions.

License

The Clear BSD License (SPDX: BSD-3-Clause-Clear) — see LICENSE for details.

FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.