A modern time tracking web application that integrates with Microsoft Dynamics 365 Business Central. Built by KnowAll.ai.
- Weekly Timesheet View - Track time across the week with an intuitive grid layout
- Real-time Timer - Start/stop timer for accurate time tracking
- Business Central Sync - Automatic synchronization with BC Jobs and Job Journal Lines
- Microsoft Authentication - Secure SSO via Microsoft Entra ID
- Dark Theme - Modern, eye-friendly dark interface
- Mobile Responsive - Works on desktop and mobile devices
![]() |
![]() |
| Timesheet - Weekly time entry grid | Projects - Browse BC projects |
![]() |
![]() |
| Team - View team status | Plan - Resource scheduling |
![]() |
![]() |
| Approvals - Review timesheets | Reports - Analytics & export |
| Layer | Technology |
|---|---|
| Frontend | React 19, Next.js 16 |
| Styling | Tailwind CSS 4 |
| State | Zustand |
| Auth | MSAL.js (Microsoft Entra ID) |
| Data | Business Central OData API |
| Testing | Playwright, Vitest |
| Runtime | Bun |
| Hosting | Azure App Service |
- Bun 1.0+
- Azure subscription with Entra ID
- Business Central environment
# Clone the repository
git clone https://github.com/knowall-ai/thyme.git
cd thyme
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your Azure/BC credentials
# Run development server
bun run devOpen http://localhost:3000 in your browser.
NEXT_PUBLIC_AZURE_CLIENT_ID=<entra-app-client-id>
AZURE_CLIENT_SECRET=<entra-app-secret>
NEXT_PUBLIC_AZURE_TENANT_ID=<tenant-id>
BC_ENVIRONMENT=<production|sandbox>
BC_COMPANY_ID=<business-central-company-guid>bun run dev # Start development server
bun run build # Build for production
bun run start # Start production server
bun run lint # Run ESLint
bun run lint:fix # Run ESLint with auto-fix
bun run format # Format code with Prettier
bun run format:check # Check formatting without changes
bun run test # Run unit tests
bun run test:e2e # Run E2E tests
bun run typecheck # Run TypeScript checks
bun run check # Run all checks (format, lint, typecheck, build)Before submitting a PR, ensure all checks pass:
bun run checkThis runs:
- Format check - Prettier formatting validation
- Lint - ESLint code quality rules
- Type check - TypeScript type validation
- Build - Production build verification
These checks also run automatically via GitHub Actions on every PR.
thyme/
├── .github/
│ └── AGENTS.md # AI assistant personas
├── docs/
│ ├── SOLUTION_DESIGN.adoc # Architecture overview
│ ├── DEPLOYMENT.adoc # Deployment guide
│ ├── TESTING.adoc # Test documentation
│ └── TROUBLESHOOTING.adoc # Problem/solution guide
├── src/
│ ├── app/ # Next.js pages
│ ├── components/ # React components
│ ├── hooks/ # Custom hooks & stores
│ ├── services/ # API clients
│ ├── types/ # TypeScript types
│ └── utils/ # Utilities
├── tests/
│ ├── e2e/ # Playwright tests
│ └── unit/ # Vitest tests
└── public/ # Static assets
Deploy to Azure App Service:
bun run build
# Deploy .next/standalone to AzureSee docs/DEPLOYMENT.adoc for detailed instructions.
- Solution Design - Architecture and design
- Deployment Guide - Azure setup
- Testing Guide - Running tests
- Troubleshooting - Common issues
This is an internal tool for KnowAll.ai. For issues or feature requests, please use GitHub Issues.
Proprietary - KnowAll.ai





