Team: ScratchTheCat
Features
- User Authentication: Users can register, log in, and log out.
- Product Browsing: Users can browse featured products and view details such as name, price, and available quantity.
- Shopping Cart: Users can add items to a shopping cart and view the total amount.
- Top-Up Balance: Users can top up their account balance using cash or credit card. The balance is displayed in TikToken, with exchange rates fetched from an API.
- Order History: Users can view their past orders.
- Transfer: Users can transfer TikTokens to existing users.
- Transaction History: Users can view their history of purchases, top-ups, and transfers.
- Security Feature: A 6-digit pin given upon registration is required for purchases and transfers.
- Error Handling: Users will not be able to see the backend error message if an error is faced.
Functionality
Development Tools
- Python 3.7 or higher: The primary programming language for the backend.
- Flask: A lightweight WSGI web application framework in Python.
- SQLite: A database library that provides a lightweight, disk-based database.
APIs Used
- ExchangeRate-API: Used to fetch real-time exchange rates for currency conversion.
Assets Used
- HTML Templates: Used for structuring the web pages.
- CSS Stylesheets: Used for styling the web pages (style.css).
- Images: Product images and other graphical assets used within the application.
Libraries Used
- Flask: Web framework used to build the application.
- Requests: HTTP library used to make API calls to the ExchangeRate-API.
- SQLite3: Database library used for managing the SQLite database.
Problem Statement
Reshaping Payments - Wallets Financial Inclusion is an important goal for payment services, especially if one looks beyond credit/debit cards. How can we bring payments to more users, especially those who are not served well by current solutions, while still maintaining security, trust & safety.
Inspiration
With the rise of e-commerce platforms and digital marketplaces, users are increasingly looking for integrated solutions that allow them to manage their funds without having to rely on multiple external services. The idea was to create a kiosk machine that acts as an all-in-one solution, enabling users to securely top up their accounts using cash and manage their balances efficiently. The TikToken currency concept was inspired by the need to create a universal digital currency that could simplify transactions across different currencies, making it easier for users to purchase items globally. The real-time exchange rate integration ensures that users always get the most accurate conversion rates, adding transparency and fairness to the process.
Challenges
User Authentication and Security Ensuring robust user authentication and security is crucial for protecting user data and account balances. Given the sensitive nature of financial transactions and personal information, it is essential to implement comprehensive security measures to prevent unauthorized access and data breaches. Possible solution: Storing passwords as plain text in the database is a significant security risk. Instead, passwords should be hashed using a strong hash function before being stored. Hashing converts the password into a fixed-length string of characters, which cannot be easily reversed. This means that even if the database is compromised, the actual passwords remain secure.
Handling Concurrency In a multi-user environment, where several users might try to access or update the database at the same time, handling concurrency is critical. If not managed correctly, concurrent access can lead to data corruption, inconsistencies, and unpredictable behavior. This is particularly important in financial applications, where accurate balance updates are crucial. Possible Solution: By implementing transactions and locks, you can ensure that database operations are performed atomically and consistently, even under concurrent access. This approach helps maintain data integrity, preventing issues like data corruption and inconsistencies, which are critical for financial applications. Proper concurrency management ensures that each user's balance updates are handled correctly, reflecting accurate account balances at all times.
What's Next for TikToken
Security Features Implement additional security measures to protect user data and transactions and introduce two-factor authentication (2FA) for user accounts.
Admin Features Enhance the admin interface to allow admins to log in and update the database and provide tools for admins to manage users, orders, and products more efficiently.
Order Tracking Implement a detailed order tracking system to provide real-time updates on order status and allow users to view the current status of their orders and receive notifications.
Group Members of ScratchTheCat
Neo Zi Ning a Y1 student at NUS majoring in Business Analytics.
Jodie Lim Zhuo Ying a Y1 student at NUS majoring in Information Security.
Acknowledgments
- Flask: https://flask.palletsprojects.com/
- SQLite: https://www.sqlite.org/
- Exchange Rate API: https://www.exchangerate-api.com/
- jersey_top.jpg: https://sg.shp.ee/j2ubVRq
- scrunched_top.jpg: https://sg.shp.ee/L9ivnL3
- cardigan.jpg: https://sg.shp.ee/2RGJi6s
- lipstick.jpg: https://sg.shp.ee/yvCbpjr
- cap.jpg: https://sg.shp.ee/2wqk1sr
- huggable.jpg: https://sg.shp.ee/WxuAz7Z
- earring.jpg: https://sg.shp.ee/k2N241B
- ecommerce.jpg: https://images.app.goo.gl/MirBbvTQ5YHffkeJ8
- logo.jpg: https://images.app.goo.gl/Gdyb9b61KELUcrBi9
Log in or sign up for Devpost to join the conversation.