Welcome to Smart Saver, a website designed to help households and supermarkets manage their food inventory efficiently. Our platform empowers users to track product expiry dates by scanning QR codes, set alarms for impending expirations, and ultimately save money on daily purchases.
Explore our web application: Smart Saver
- Navigate to the login page.
- Enter your credentials (
email
,password
). - Receive the required response from the server in toast or text form.
- Ensure the server is running.
- If not logged in, navigate to the signup page (
/signup
).
- Ensure the backend is set up correctly and the server is running.
- Fill in all required fields (
name
,email
,phone number
,password
). - Receive the required response from the server in toast or textual error form.
- After successful registration, automatically navigate to the
/login
page. - Log in to the application as per the above steps.
- Ensure JWT and BcryptJS are used for authorization.
- Obtain the Authorization token after logging in.
- The token is valid for the next hour.
- Utilize application services while the token is valid.
-
Sign Up for Twilio:
- Go to Twilio's website and sign up for a new account if you haven't already.
-
Get Twilio API Credentials:
- Note down your Account SID and Auth Token from the Twilio dashboard.
-
Purchase a Phone Number:
- Obtain a phone number from Twilio for sending SMS notifications.
-
Install Twilio SDK:
- Install the Twilio Node.js package in your project:
npm install twilio
- Install the Twilio Node.js package in your project:
-
Integrate Twilio into Your Backend:
- Use the Twilio SDK to send SMS notifications from your backend.
- Initialize Twilio with your Account SID and Auth Token.
- Craft and send notification messages using Twilio's API.
-
Test SMS Notifications:
- Ensure users receive notifications correctly.
-
Handle Errors and Edge Cases:
- Implement error handling for failed SMS delivery or invalid phone numbers.
- Consider retry mechanisms for failed deliveries.
-
Monitor Usage and Costs:
- Keep track of Twilio API usage and associated costs.
-
Document Integration Steps:
- Update project documentation with detailed Twilio setup instructions.
-
Final Testing and Deployment:
- Deploy the updated project with Twilio integration.
Share your feedback and insights with the Smart Savers community to improve the platform.
Effortlessly scan QR codes to access instant product information.
- In the admin dashboard we have made the announcement tab in which the admin can make announcements regarding the updates and tech needs so that the registered users or developers can have the email regarding the updation in the web application.
https://www.figma.com/design/naU9W2cQQa04wB6WsEjkr2/Untitled?node-id=0%3A1&t=DazRyOMA1k4rRDTr-1
- HTML5
- CSS
- JS
- ReactJS(need to be converted for better performance)
- MongoDB
- Express JS
- Node JS
- SuperJEST
- Tailwind
- Twilio
- After successfully setting up the project you can view the project on port
3000
- Give access to the camera and log in with your credentials.
- Now scan the particular product QR and get all the details.
- If the software couldn't find your product then our database is missing the product details in it.
- Add that particular product by following the abovementioned steps.
-
Fork and Clone the Repository To get started with contributing to our project, fork the repo and then clone it to your local machine:
git clone https://github.com/usha-madithati/esmart.github.io cd esmart.github.io
-
Make Your Changes Make the necessary modifications or additions to the project files.
-
Commit and Push Once you've made your changes, commit them and push to your fork:
git add .
git commit -m "Describe your changes here"
git push
- Create a Pull Request Navigate back to the original repository and open a pull request from your forked repository.
- Navigate through the backend folder
- Setup .env file and set MONGO_URL and other dev dependencies regarding in .env.sample and set your .env file
- Make the connection string and copy the string in the Mongodb compass and start the server in the MongoDB cluster in compassUI or on the website respectively
- Now install all dependencies required for backend setup npm install
5> Now run the server with npm start
6> Your backend server will be running on PORT:
6352
1> To ensure the robustness of our application, we use Jest and Supertest for testing.
Setting up Jest
and Supertest
Install Dependencies
npm install jest supertest --save-dev
2> Create Test Files Create test files in the tests folder (or another preferred directory).
3> Writing Tests Use Jest and Supertest to write your tests.
4> Run Tests To run the tests, use the following command: npm test
5> You can also add a script in your package.json for convenience:
"scripts": { "test": "jest" }
We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Login to your vercel here: https://vercel.com/login
- Now select the forked repository on vercel website in your dashboard.
- After selecting the repository select the root or default branch to get deployed.
- For Backend setup and server changes we have different approaches in our project.
- We have the server on a different repo on which the specific interested project contributors have access to it.
- Soon we will add the functionality of adding the specific interested contributors through our web application.
- Now if you tested the application and believe that it has your functionality or bug has been fixed as well then raise the PR(Pull Request).
Welcome to Smart Saver! This section provides a brief guide on how to navigate and utilize the features of our website effectively.
-
Navigate to the Login Page
- Access the login page by clicking on the "Login" button in the navigation bar.
-
Enter Your Credentials
- Provide your email address and password in the designated fields.
-
Receive Authentication
- Upon successful authentication, you will receive confirmation either through a toast notification or a text message.
-
Access the Signup Page
- If you're not registered yet, click on the "Signup" link to navigate to the registration page (
/signup
).
- If you're not registered yet, click on the "Signup" link to navigate to the registration page (
-
Complete Registration
- Fill out all required fields including your name, email, phone number, and password.
-
Confirmation
- After successful registration, you will automatically be redirected to the login page (
/login
).
- After successful registration, you will automatically be redirected to the login page (
-
Scanning QR Codes
- Use the QR code scanner feature to instantly retrieve detailed information about products.
-
Product Information
- If a product is not found in our database, you can add it by following the provided steps.
-
Setting Up Twilio
- Sign up for Twilio and obtain API credentials (Account SID and Auth Token).
-
Sending SMS Notifications
- Integrate Twilio into your backend to send SMS notifications for product expirations or updates.
-
Announcements
- Admins can make announcements regarding updates and technical needs using the admin dashboard.
-
Monitoring and Maintenance
- Keep track of system updates and user feedback to improve the platform continuously.
Our platform leverages a modern tech stack including HTML5, CSS, JavaScript, ReactJS, MongoDB, ExpressJS, NodeJS, Tailwind CSS, and Twilio for enhanced functionality and performance.
Explore more about our application on our Smart Saver website.