GitHub: https://github.com/pinkadotted/carousell-project

Project done by: Subesh K. and Cheong Cher Lynn

Overview

Our Project is a P2P online marketplace application, where users can browse, search, sell, and buy products or services from other users. It draws inspiration from Carousell, the first locally well-known application of its kind. The decision to dive into this project was fuelled by the idea that it would challenge us with a diverse range of features—unfamiliar terrain from our past work, but not too distant from our current skill set.

My teammate and I are both final year SUTD students who embarked on this project to dip our toes into mobile development, without needing to learn an entire new framework (since React Native builds up from ReactJS).

We deliberately set a cap of 5 weeks for our initial project iteration. This timeframe aimed to strike a balance between diving into other projects to expand our technical prowess and keeping a self-imposed push to develop at an impressive pace. Our first iteration was wrapped up in just over 4 weeks, so when you're sizing up the app's scope and functionality, please consider this time frame in mind.

Core features

  1. New users will be able to register for an account using their email. Existing users will be able to sign in using their email and password. Their authentication state will remain persistent due to a JSON Web Token being stored in a cookie on their device.
  2. Users are able to view all the listings that are posted by other users in the Home page.
  3. Users can filter the displayed listings by selecting a certain category from the icons shown in the home screen, which are rendered in a HorizontalScrollView
  4. Users may also filter more specifically by using the searchbar to type in their search terms, and the filtered listings will be rendered automatically without needing to press on a search button
  5. Users may view their own listings under the Profile tab
  6. Users may post a listing by filling up the form on the Sell screen.
  7. After selecting a listing card, the user will be able to view the listing details on a separate screen, where he/she can choose to chat with the seller through the “Chat” button, or directly place an offer by selecting the “Buy” button.
  8. A chat will be initiated between the user and the seller of that listing, where the chat messages are sent and received in realtime by both parties, allowing for a seamless exchange of information.
  9. Users may then press on the “Offer” button to send an offer to the seller, which he/she can withdraw if it has not already been accepted by the seller.