A laboratory inventory management app made at Upenn (Faryabi Lab) for tracking liquid nitrogen storage — boxes, vials, and cell lines — for individual lab members.
Cryo Tank Inventory lets lab members organize their cryogenic storage digitally. Each user manages their own boxes and vials, while cell lines are shared among all users for vial creation.
🔗 Live app: https://faryabilab.github.io/cryo-tank-inventory/
- Secure sign-up, login, and logout via AWS Cognito
- Email verification with confirmation codes
- Forgot password / password reset flow
- Protected routes — unauthenticated users are redirected to login
- Create, edit, archive, and delete storage boxes
- Mark boxes as
Main TankorEssential Storage - Inline name editing
create.box.mov
- Add vials to specific positions within a box
- Position conflict prevention (no two vials in the same slot)
- Optional vial naming
- Each vial derives its color from its cell line
- Cascade deletion — deleting a box removes its vials
create.vial.mov
- Shared across all users as reference data
- Categorization with species, growth, disease, and tissue tags
- Toggle in edit mode to rapidly fill slots
- Select a cell line, then click empty slots to instantly place vials
paint.mode.mov
- Adapts to desktop, tablet, and mobile layouts
responsiveness.mov
Frontend
- React + React Router (SPA mode)
- TypeScript
- Tailwind CSS
- Vite
- AWS Amplify (Cognito integration)
Backend
- Node.js + Express
- TypeScript
- Prisma ORM
- Swagger / OpenAPI for API documentation
Infrastructure
- PostgreSQL on AWS RDS
- Backend hosted on AWS EC2 (nginx reverse proxy)
- Frontend hosted on GitHub Pages (GitHub Actions CI/CD)
- AWS Cognito for authentication