Web Applications
Session/Timer based POS (Point of Sale)
Built by Angel Gabriel Litob Jr.
This is a POS system for businesses that specializing in time renting such as karaoke rooms and billiard tables.
Builder email verified
Verification

- Type
- Professional
- Category
- Web Applications
- Published
- Sep 23, 2026
- Updated
- Sep 23, 2026
About this project
- The problem
The POS (Point of Sale) system is a web-based application specializing to serve business that use sessions as their service. This include karaoke rooms, billiard tables, gaming rooms, etc. What this system solve is the portability of a POS, traditional POS rely on desktop app and bulky cash registers. This system can be used as web desktop or tablet.
- My role
I am the Full-stack Next.js developer of the team leading the product development, sprint execution, managing the team from UI to deployment. I am also leading the execution and planning of the architectural decisions with the guidance of our senior developer.
- What I owned
I am responsible mainly as the backend developer and the deployment of the project, but I also have a huge contribution in product development and frontend.
Backend responsibilities:
- Designed database schema
- Did the database migration from MariaDB to PostgreSQL since the initial prototype is written in MariaDB.
- Structured the codebase which aligns with Next.js Full Stack architecture.
- Established the Authentication using BetterAuth
- Established the Authorization using CASL (an Isomorphic Authorization Javascript Library) to enable and control rbac.
- Applied business logics according to business with clear separation of concerns using service layer.
- Lead the team to implement server action for data mutation to keep Next.js architecture consistent.
- Implemented the datetime consistency and reliability as this the core solution of the system.
Deployment responsibilities:
- Implemented industry standard deployment workflows using development, staging, and production environment so that the team can test effectively and efficiently.
- Ensured robust and fast app performance delivery to the client.
- Ensured proper and established dependencies and node packages for consistent build of the app.
Frontend responsibilities:
- Implemented tanstack-query and tanstack-table for state management and data handling.
- Implemented shadcn preset UIs and tailwind css.
- Implement Zod schema for data validation.
- Technical & product decisions
One of the technical decisions that I have implemented is how to manage the time of for the session/timer. I made sure that the system will follow a constant Philippine Standard Time IANA Zone as this would affect the session billing accuracy of the system. IANA (
Asia/Manila) is the source of truth for what offset applies at a given instant, but every instant that crosses a wire, gets stored, or gets compared is UTC — Manila time is a presentation/query-boundary layer computed on top, never a storage format.Another technical decision that I have is implementing server action for data mutation instead of using API routing for a Next.js full-stack application. This is important as it streamline internal data mutation driven directly to the application's UI; this is to sync client-side UI with the server-side state. Furthermore, I applied next safe action to secure and validate server actions.
Another technical decision is the implementation of Better-Auth. Key decision of this is it provides the out-of-the-box feature velocity of a paid, managed service (like Clerk), but gives you the zero-cost ownership and control of a self-hosted library (like Auth.js)
- Constraints
The constraints that we have worked in is the limited direct source of requirements of the system. Though, POS system have straight forward features, we have a constraints on user specific needs for a session based POS, as we are building for a generic for direct distribution system not a custom software for a single user.
- Result & impact
The measurable impact that I have produced to the team is its productivity and reliability. First, by implementing AI assisted programming such as Claude code, we are able to implement 2-4 features in 2-3 weeks with only a team of three for a 12 week project timeline. Second, is the reliability of the system, making sure that correct testing must be applied in different environments.
- Who else worked on it
I collaborated with 3 Full Stack developers, one is our lead developer. With the client/product owner of the system.