How shreyasawankar/shreyas-capstone-project-gms works
This is a Go Grocery Management API: clients authenticate, then create, browse, update, or delete grocery records; product images can be uploaded with thumbnails. Bulk CSV upload is a separate ingestion path that stores a file and publishes its URL for processing into grocery records. Firestore holds grocery data, while Pub/Sub is used for bulk and audit messages. The tree and sampled handlers support the main CRUD, image, and bulk flows; wiring for some unsampled handlers and background consumers is not established here.
Main entry points: main.go HTTP routes · updateItem.go Update item · createItems.go Create item · clients.go Cloud clients
Components 21
API and authentication
- HTTP routes
main.go - Login
functions/login.go - Logout
functions/logout.go - Token verification
functions/verifyToken.go
Grocery management
- Create item
functions/createItems.go - List groceries
functions/listGrocery.go - Get item
functions/getItemById.go - Update item
functions/updateItem.go - Delete item
functions/deleteItem.go - Product model
models/groceryModel.go
Bulk ingestion
- Bulk upload API
functions/createBulkUpload.go - CSV processor
functions/createBulk.go - Bulk record storage
functions/createBulk.go
Cloud services
- Cloud clients
functions/clients.go - Firestore
- Cloud Storage
- Pub/Sub topics
- File upload helper
functions/uploadFile.go - Thumbnail generation
functions/generateThumbnail.go - Audit records
functions/storeAuditRecords.go
Other components
- API client
Connections 37
- API client → HTTP routes: sends requests
- HTTP routes → Login: routes login
- HTTP routes → Logout: routes logout
- HTTP routes → Create item: routes create
- HTTP routes → List groceries: routes list
- HTTP routes → Get item: routes lookup
- HTTP routes → Update item: routes update
- HTTP routes → Delete item: routes delete
- HTTP routes → Bulk upload API: routes upload
- Login → Cloud clients: uses clients
- Create item → Token verification: verifies token
- Bulk upload API → Token verification: verifies token
- Update item → Token verification: verifies token
- Create item → Product model: binds product
- Create item → Firestore: writes product
- Create item → File upload helper: uploads image
- Create item → Thumbnail generation: generates thumbnail
- List groceries → Firestore: queries products
- List groceries → Product model: decodes products
- Get item → Firestore: reads product
- Update item → Firestore: reads and writes
- Update item → Product model: binds product
- Update item → File upload helper: uploads image
- Update item → Thumbnail generation: generates thumbnail
- Update item → Pub/Sub topics: publishes audit
- Delete item → Firestore: deletes product
- Bulk upload API → File upload helper: stores CSV
- Bulk upload API → Pub/Sub topics: publishes file URL
- CSV processor → Bulk record storage: passes CSV records
- CSV processor → Firestore: reads grocery data
- Bulk record storage → Firestore: writes products
- File upload helper → Cloud Storage: writes files
- Thumbnail generation → Cloud Storage: stores thumbnail
- Cloud clients → Firestore: initializes client
- Cloud clients → Cloud Storage: initializes client
- Cloud clients → Pub/Sub topics: initializes client
- Cloud clients → Audit records: initializes logging