How ranggawaridat/bukuin-digital-bookstore works
Bukuin is a Go/SQLite digital bookstore. Shoppers browse and search ebooks, register or sign in, manage a cart, check out through Midtrans, then review orders and access purchased titles in their library. Admins manage the catalog and orders and view sales statistics and analytics. The sampled entry point shows route wiring and the order repository shows checkout and payment calls; several other handlers and admin implementations were not sampled, so those links are limited to documented capabilities and visible route registration.
Main entry points: main.go HTTP application · static Bookstore pages · repository.go Order and payment data · login.js Sign-in pages
Components 23
Web interface
- HTTP application
cmd/api/main.go - Bookstore pages
web/static - Sign-in pages
web/static/login.js - Catalog pages
web/static/books.js - Cart page
web/static/cart.js - Order pages
web/static/orders.js - Library page
web/static/library.js - Admin dashboard
web/static/admin.js
Identity and catalog
- Authentication
internal/auth/handler.go - User sessions
internal/auth/repository.go - Book catalog
internal/book/handler.go - Catalog management
internal/book/admin_handler.go
Shopping and fulfillment
- Shopping cart
internal/cart/handler.go - Cart operations
internal/cart/repository.go - Orders and library
internal/order/handler.go - Order and payment data
internal/order/repository.go
Administration
- Admin reporting
internal/admin/admin.go - Order management
internal/admin/orders.go
Persistence and payments
- SQLite connection
internal/database/database.go - SQLite database
- Midtrans Sandbox
Other components
- Shopper
- Administrator
Connections 33
- Shopper → HTTP application: HTTP requests
- Administrator → HTTP application: HTTP requests
- HTTP application → Bookstore pages: serves pages
- Bookstore pages → Sign-in pages: loads scripts
- Bookstore pages → Catalog pages: loads scripts
- Bookstore pages → Cart page: loads scripts
- Bookstore pages → Order pages: loads scripts
- Bookstore pages → Library page: loads scripts
- Bookstore pages → Admin dashboard: loads scripts
- Sign-in pages → HTTP application: calls auth API
- Catalog pages → HTTP application: calls catalog API
- Cart page → HTTP application: calls cart API
- Order pages → HTTP application: calls order API
- Library page → HTTP application: calls library API
- Admin dashboard → HTTP application: calls admin API
- HTTP application → Authentication: routes auth
- HTTP application → Book catalog: routes catalog
- HTTP application → Catalog management: routes admin books
- HTTP application → Shopping cart: routes cart
- HTTP application → Orders and library: routes orders
- HTTP application → Admin reporting: routes reporting
- HTTP application → Order management: routes order admin
- Authentication → User sessions: reads and writes
- Book catalog → SQLite database: catalog queries
- Catalog management → SQLite database: book changes
- Shopping cart → Cart operations: cart operations
- Cart operations → SQLite database: reads and writes
- Orders and library → Order and payment data: order operations
- Order and payment data → SQLite database: reads and writes
- Order and payment data → Midtrans Sandbox: creates transaction
- Midtrans Sandbox → HTTP application: payment notification
- HTTP application → SQLite connection: connects and migrates
- SQLite connection → SQLite database: opens connection