Inspiration
Our solution TMoney's inspiration stemmed from the growing popularity of TikTok in South East Asia and the up-and-coming TikTok Shop. An e-wallet could help merchants and TikTok save significant amounts of money on transaction fees. At the same time, it creates opportunities for controlling the entire consumer purchase value chain from marketing to shopping and transaction.
TikTok has the potential to bring about a significant positive change in developing South East Asia by providing an e-wallet to individuals without access to traditional banking, thereby improving financial inclusivity and creating value for consumers.
We believe that with an extensive influence and proprietary data, we can provide valuable financial products such as investments, insurance, micro-financing for small businesses, collateralised and non-collaterised loans, remittance for regional workers and more.
What TMoney do
At present, users will be able to perform basic actions, login and create an account. As a proof of concept, consumers will be able to make deposits and withdraw money from PayPal. A similar API integration can be used with convenience stores, banks and ATMs for easier money deposits and withdrawals.
At present users are also able to make payment to another user by P2P transfer. Additionally, we have also created an API that allows online businesses to enable payment with our e-wallet on their website. Hence, users can purchase items off-site and make a payment to the merchant.
Users and businesses can view their past transactions in the transactions tab. For every purchase, users will also earn loyalty points which are also reflected in our web app.
For small businesses without a website, our e-wallet comes with a business account, where the business owner can generate a QR code through our e-wallet. Users can scan this QR code to make payment to the business. If a business has a website, the business can create an API on our site to add to their site to enable payment by TMoney.
We have developed a list of product improvements, some of which are: investment, insurance, microfinancing, loans, enhanced KYC, marketing as a service, coalition loyalty program (Full details can be found in /roadmap on our website)
How we built it
We paid special attention to understanding not just the business and social requirements but also the technical requirements.
We approached this project as if we were building a real e-wallet startup. A startup typically has few users at the start and needs to prioritise shipping new features over building the most perfect solutions. As such, we chose a monolith architecture as we can split it into microservices in the future if needed.
In the backend we have paid special attention to data consistency and security. This is especially important for a payment system as mistakes will be costly. To mitigate concurrency issues, we used pg advisory locks to explicitly lock the transactions' table when a user's balance is deducted. This helps to prevent a user from spending more money than they have.
Choosing the right database was crucial for us. We prioritized a database that supported ACID transactions for data consistency reasons, even if it meant sacrificing scalability. Idempotency is also used for data consistency to ensure that no duplicate requests are made.
In implementing our e checkout system, we took inspiration from PayNow and PayPal. From PayPal's checkout system, we learned the importance of idempotency in API requests, so we implemented that for payments checkouts for our merchants. We then emulated the seamless payments flow of PayNow by using QR codes that users can scan with their phones. By enabling the generation of QR on our platform, we allow small business owners to easily integrate their local business into their sales process.
We prioritized making the frontend mobile-first because we expect most users to use their phones to interact with our system.
Challenges we ran into
On the tech side, challenges include integrating with external APIs like send grid and PayPal.
Accomplishments that we're proud of
We are proud to complete this project in 1 week while studying and working part-time as developers and product owners. We think that our product is a comprehensive solution and a good MVP.
What we learned
During the development process, we gained valuable insights into the challenges faced by users in South East Asia when it comes to making payments online. We learned about the importance of building trust and security into our eWallet solution, as well as the need for user-friendly interfaces to encourage adoption. We also discovered the significance of integrating various payment channels to cater to diverse user preferences.
One crucial lesson is how we translate business requirements into technical requirements.
We learnt about the importance of concurrency controls and idempotency in payments systems. We also learned how to do proper validation for forms in the frontend and integrate a backend and frontend. Furthermore, we learned how to plan a full stack project from the start to end, following an agile product management strategy.
What's next for Shuffle++
Win the TikTok hackathon and get hired at TikTok as full-timers. :)
How to use our site:
https://tiktok-hackathon-2023.vercel.app/login Create an account using your REAL email and password. For registration, we have disabled OTP for first time users. However, on the second login, an OTP will be sent to email. Check spam for the email.
To simulate a deposit or withdrawal using paypal, you can use these paypal sandbox login-information. Email: sb-xlmv126597776@personal.example.com Password: p,>6>xaE
If you want to watch the balance transfer in real time, you can log into: https://sandbox.paypal.com using the above credentials
If you'd like to simulate a purchase of merchandise from an e-commerce site, you could use this link to add an item to cart and then proceed to check out and pay. A QR code will be generated. and you can scan the QR code using your phone or laptop from T-Money's website. https://t-money-ecommerce-demo.vercel.app/
You can also experiment with our APIs by using this link: https://t-money-api-vugb2.ondigitalocean.app/graphql
Built With
- digitalocean
- docker
- nestjs
- postgresql
- react
- supabase
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.