dnikolovv/cafe
41.3
Weak · 21 September 2026
6.6k
lines of production code
C#
with JavaScript
4
measurements over time
What this system is
This system is a café management platform that coordinates operations among multiple staff roles, including waiters, baristas, cashiers, and managers. It provides a React-based client interface for managing orders, tables, and menu items, while a .NET backend API handles authentication, role-based access control, and real-time updates via SignalR. The application supports distinct workflows for each staff type, such as order confirmation, tab management, and administrative user role assignment.
Features
Added Docker and CI/CD configuration files
The repository now includes configuration files to support containerized development and automated testing. A \.dockerignore\ file is added to exclude unnecessary files from Docker builds, and a \.travis.yml\ file is introduced to automate integration tests and code coverage reporting via Travis CI. These changes enable running the application and its tests within Docker containers and streamline the continuous integration workflow.
(repo-wide) · high confidence
Added cashier interface for issuing and confirming to-go orders
A new CashierPage component was introduced, enabling staff to issue to-go orders and confirm pending orders. The page integrates a ToGoOrderForm for selecting menu items and a PendingOrdersList that displays outstanding orders, allowing the user to input the amount paid and confirm the transaction.
client/src/components/cashier · medium confidence
Added common UI components and a home page
Introduced a suite of reusable UI components in the client's common directory, including an error display, a selectable menu for managing item counts, a ordered items list, and input/select helpers. Additionally, a new home page was added to the application.
client/src/components/common · high confidence
Added default HTML and manifest files for the React app
The client/public directory now includes the standard index.html template and a manifest.json file, which configure the app's title, meta tags, and web app metadata for mobile/desktop installation.
client/public · high confidence
Added login and logout components
The application now includes a new login page and form for user authentication, allowing users to sign in with email and password. Additionally, a logout component was added to handle user sign-out, which triggers the logout action and closes all open WebSocket connections.
client/src/components/auth · high confidence
Admin users management interface
Added new components in the admin section to manage users and assign roles. The AdminPage now displays a UsersList showing user IDs and emails with links to manage each user. The ManageUserPage allows administrators to view user details and assign roles such as Waiter, Barista, Cashier, and Manager via a new AssignRoleToUserSelect component, which triggers an API call to assign the selected role to the user.
client/src/components/admin · high confidence
Barista interface for managing issued orders
A new BaristaPage component and a WaitingOrdersList component have been added to the client application. The BaristaPage connects to the Redux store to load and display issued orders, while the WaitingOrdersList component renders a table of pending orders with a 'Complete' button for each, allowing baristas to mark orders as finished.
client/src/components/barista · high confidence
Initial Redux state management for the client application
The client application now uses Redux to manage global state for authentication, user roles (waiters, baristas, cashiers, managers), tables, tabs, orders, and menu items. This includes action creators and reducers for each domain, a central store configuration with middleware for real-time table actions, and an initial state structure that supports the various user roles and their specific capabilities, such as managing tables or completing orders.
client/src/redux · high confidence
Initial client application shell and routing structure
The client application now includes a foundational structure with a main App component that defines the primary navigation routes for the application, including pages for home, login, admin, cashier, barista, manager, and waiter roles, as well as a 404 page. A UserProvider component has been added to handle initial authentication state by checking for an access token cookie and dispatching a Redux action to load the current user. Additionally, the project now imports the Font Awesome 4.7.0 CSS library for iconography.
client/src/components · high confidence
Initial client application structure and routing setup
The client application has been initialized with a basic React structure, including a root component wrapper, global CSS styles for layout, and a shared history object for routing. The entry point configures the Redux store and React Router to enable navigation within the application.
client/src · high confidence
Initial server-side API implementation
The server/src area introduces the complete backend API for the café management system. This includes controllers for authentication, user roles (waiters, cashiers, baristas, managers), and operational domains like tables, tabs, and orders. The implementation features a dynamic dependency injection setup for repositories, a database seeder that initializes test data and admin accounts, and a HATEOAS-based hypermedia structure for all endpoints. Additionally, the server is configured with Swagger/OpenAPI documentation and a health check endpoint.
server/src · high confidence
Manager dashboard for menu, tables, and waiters
The Manager can now view and manage the restaurant's menu items, tables, and waiters from a single dashboard. This includes adding new menu items and tables, hiring waiters, and assigning waiters to specific tables.
client/src/components/manager · high confidence
New API client and service layer for authentication, roles, and real-time updates
The application now uses a centralized API client (apiClient.js) that handles HTTP requests, processes 401/403 errors by redirecting to login, and displays toast notifications for validation or server errors. A new authentication service manages login, logout, and fetching the current user. Dedicated services have been added for managing users, assigning roles (cashier, manager, waiter, barista), and handling specific domain logic for orders, tabs, tables, menu items, and waiters. Additionally, a WebSocket client is introduced to subscribe to real-time events like order confirmations and table actions, with connections properly closed on logout.
client/src/api · high confidence
New waiter interface for managing customer tabs
The waiter interface has been rebuilt to allow waiters to open new tabs, view a list of all open and closed tabs, and manage individual tab states. The new WaiterPage component displays forms to open tabs and lists open tabs for selection. The ManageTabPage component enables waiters to order items, serve or reject items, and close tabs with payment details. The TabsList component displays both open and closed tab histories, allowing waiters to navigate to specific tabs for management.
client/src/components/waiter · high confidence
Test coverage
Added API controller tests for the Cafe application; Added API test helper for role-based authentication contexts; Added integration tests for SignalR hubs; Added test extension helpers for HTTP, mocking, and domain assertions; Added test infrastructure for integration and unit testing; Added tests for auth, user, and staff assignment handlers; Added tests for database configuration and seeding; Added unit tests for API exception and model state filters.
Dependencies
Initial client and server dependency manifests added
The project now includes the initial dependency manifests for the React client and the .NET server layers. The client's package.json and package-lock.json introduce a React 16.8.6 stack with Redux, React Router, and SignalR. On the server side, new .csproj files define the architecture with .NET Core 2.2, referencing libraries such as AutoMapper, MediatR, FluentValidation, and Swashbuckle for API documentation.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 43 → 41 (-1.3)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 53 → 56 (+3.4)
- Architecture 85 → 85 (-0.2)
- Maturity 50 → 49 (-1.4)
- Readiness 27 → 25 (-2.3)
- Security 57 → 55 (-1.8)
- Domain Modelling 57 → 67 (+10.4)
- Event-Driven 100 → 100 (+0.0)
- Event Sourcing 100 → 65 (-35.3)
Resolved (88)
- Boundary-crossing change coupling: App.js ↔ actionTypes.js (client/src/components/App.js)
- Bounded contexts not declared
- Change coupling: LoginHandler.cs ↔ RegisterHandler.cs (server/src/server/Cafe.Business/AuthContext/CommandHandlers/LoginHandler.cs)
- Coverage not measured — analyzer environment
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- …and 68 more
New (158)
- Critical CVE: [CVE redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- Critical CVE: [GHSA redacted] (client/package-lock.json)
- …and 138 more
API surface
- Unchanged — 25 HTTP endpoints
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
dnikolovv/cafe was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 807b396e19e8e093b2a223bb8e1ae37cf36698a1 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.