A chemical inventory manager with QR code scanning built for schools.
- Introduction
- Contributors
- Prerequisites
- Setup
- Running the Project
- Testing
- Deployment
- API Endpoints
- UI Images
- Key Milestones
- Additional Information
ChemTrack is an innovative chemical inventory management system designed specifically for educational institutions. This powerful tool leverages QR code technology to streamline the tracking and management of chemical inventories, ensuring safety and compliance in school laboratories.
With ChemTrack, users can easily add, view, and manage chemical details, including CAS numbers, purchase and expiration dates, storage locations, and quantities. The system provides real-time updates and alerts for expired or low-quantity chemicals, helping schools maintain a safe and well-organized chemical inventory.
ChemTrack's user-friendly interface allows for quick access to Safety Data Sheets (SDS) and other critical information, ensuring that all necessary safety protocols are readily available. The software also supports the generation and printing of QR codes for each chemical, enabling efficient scanning and retrieval of chemical data.
Designed with scalability and ease of use in mind, ChemTrack integrates seamlessly with existing school systems and provides robust reporting and analytics features. Whether you're a science teacher, lab technician, or school administrator, ChemTrack offers a comprehensive solution to manage your chemical inventory with confidence and ease.
ChemTrack is built using a modern technology stack to ensure reliability, scalability, and ease of use:
React Native: For building a cross-platform mobile application that runs on both iOS and Android devices, providing a seamless user experience. Expo: To streamline the development process, allowing for quick testing and deployment of the React Native application. Axios: For making HTTP requests to the backend API, ensuring efficient data retrieval and manipulation. TypeScript: To add static typing to JavaScript, enhancing code quality and maintainability.
Go (Golang): A statically typed, compiled programming language known for its performance and efficiency, used to build the backend API. Gin: A high-performance HTTP web framework for Go, used to create robust and scalable RESTful APIs. Google Cloud Firestore: A flexible, scalable database for mobile, web, and server development, used to store chemical data securely. Google Cloud Storage: For storing and serving QR code images and other static assets. bcrypt: For securely hashing and storing user passwords, ensuring data security.
Swagger: For API documentation, making it easy for developers to understand and interact with the backend services. Docker: To containerize the application, ensuring consistent environments across development, testing, and production. GitHub: For version control and collaboration, enabling seamless teamwork and code management. By leveraging these cutting-edge technologies, ChemTrack ensures a reliable, efficient, and user-friendly experience for managing chemical inventories in educational institutions.
- Rahul Gupta
- Ekjyot Shinh
- Ajaydeep Singh
- Katy Chan
- Mari Moslehi
- Harmanjot Singh
- Romin Akoliya
- Kevin Esquivel
- Node.js (v14 or higher)
- npm or yarn
- Go (v1.16 or higher)
- Expo CLI (
npm install -g expo-cli
)
- Navigate to the
backend
directory:cd backend
- Install Go dependencies:
go mod tidy
- Set up environment variables:
- Create a
.env
file in thebackend
directory and add your environment variables.
- Create a
- Navigate to the
frontend
directory:cd frontend
- Install Node.js dependencies:
or
npm install
yarn install
- Navigate to the [backend] directory:
cd backend
- Start the backend server:
go run main.go
- The backend server should now be running on
http://localhost:8080
.
- Navigate to the [frontend] directory:
cd frontend
- Start the Expo development server:
or
npm start
yarn start
- Follow the instructions in the terminal to run the app on an emulator, simulator, or physical device.
-
Requirements
-
Steps for Deployment
Refer to the http://localhost:8080/swagger/index.html#/
when running the backend for a list of available API endpoints and their usage.
Created in Figma
- SDS viewing & uploading
- Inviting user backend functionality
- User type implementation
- QR code scanning and routing
- Label printing & generation
- For more details on the project structure and code, refer to the individual files and directories.
- Ensure that you have the necessary environment variables set up for both the backend and frontend to function correctly.