Inspiration

During one of our interns, we worked on developing apps that support various business lines. The main goal of these apps was to digitise manual processes that required paper and pen, such as the vehicle logbook. This experience inspired us to build solutions that leverage technology to replace traditional methods, reduce human errors, and save manpower. When we were tasked with building the Minimart & Voucher System for Muhammadiyah Welfare Home, we saw it as an opportunity to apply this same principle of digitalising manual processes to improve efficiency and transparency.

What it does

The Minimart & Voucher System is designed to streamline voucher management for residents and admins. It allows residents to request products, earn vouchers, and manage their accounts securely. Admins can manage users, approve tasks, track requests, and generate reports. The system uses salt encryption for secure password storage, OTP for account verification, and Neo4j for efficient data retrieval and relationship management.

How we built it

We built the project using a Node.js/Express backend with Neo4j for the database. The frontend was developed using React and Vite, ensuring a fast, responsive user experience. To handle authentication, we implemented both email OTP and phone OTP for secure password resets. For added security, we used salted password encryption and allowed admins to manage users either individually or in bulk. Additionally, we integrated Cloudinary for image uploads, enabling residents to upload images as proof for their voucher tasks.

Challenges we ran into

  • Learning New Frameworks: A major challenge was learning and applying new frameworks and technologies, such as React, Neo4j, and Cloudinary for image uploads.
  • Implementing OTP Verification: We faced difficulties implementing both email OTP and phone OTP systems to ensure secure password resets and invitations.
  • Graph Database Integration: Integrating Neo4j as the graph database was a bit tricky, especially in terms of efficiently handling relationships between users, products, and tasks.
  • Image Upload: Ensuring smooth integration with Cloudinary for uploading and storing images was another challenge.
  • Security Measures: Balancing user experience and implementing secure features like salted password encryption and OTP verification took significant effort.

Accomplishments that we're proud of

  • Successfully integrating Neo4j for efficient data management and relationship handling.
  • Implementing secure login and password reset systems with OTP and salt encryption.
  • Allowing image uploads for voucher tasks, adding transparency and accountability to the process.
  • Developing an intuitive user interface that’s easy for both residents and admins to use, even for those with minimal tech experience.
  • Developing auction that is a new feature which would be a good and useful feature for both residents and admins to use.
  • Generating four different types of reports, one of which is a chart as well for better visualisation, and allowing them to be exported in CSV and PDF.

What we learned

  • The importance of choosing the right database for relationship management, which led us to Neo4j.
  • How to implement OTP verification securely for both email and phone.
  • Best practices in user authentication and password management to ensure a secure system.
  • The value of creating a user-friendly interface that caters to a diverse user base, from tech-savvy admins to residents with minimal tech knowledge.
  • Working with Cloudinary for image handling and React for building responsive and fast UIs.

What's next for Bedrock

  • Product Recommendation System: We plan to introduce a personalised recommendation system based on residents' preferences and past purchases.
  • Two-Factor Authentication (2FA): An additional security layer for logins, further enhancing the system’s safety.
  • Mobile App: Develop a mobile app version of the system for even easier access by residents and admins on the go.
  • Expanded Features: Add more features such as automated reporting, task reminders, LLM chatbot to assist in answering questions and further reducing staff strain, and advanced search filters to further improve the user experience.

Built With

Share this project:

Updates