Skip to content
Kurosh Husseini edited this page Apr 29, 2024 · 13 revisions
Programmable Web Project
Spring 2024
Group Number
Project Name SelliX
Author 1 name Konsta Laurila
Author 2 name Aleksi Illikainen
Author 3 name Kurosh Husseini
Author 4 name Bishwas Wagle
Evaluation mode

PWP SPRING 2024

PROJECT NAME: SelliX

Overview

MAIN REPOSITORY USED FOR DEVELOPMENT IS SEPARATE AND PRIVATE UNTIL END OF DEVELOPMENT. THIS REPOSITORY IS ONLY FOR WIKI.

Product Requirement

Problem

Background

SelliX is an online marketplace that provides a platform for users to buy, sell, or rent their used items and devices. Whether you're looking to declutter your home and sell some of your unused possessions or need a specific tool or gadget for a short period, SelliX has got you covered. With a wide range of categories and listings to choose from, you're sure to find what you're looking for at a great price. Plus, SelliX makes it easy to connect with buyers and sellers, so you can confidently buy, sell, or rent.

The Problem

Many people discard their belongings that they no longer require, without realizing its harmful environmental impact. This results in a loss of resources that could have been recycled and reused by someone else. For instance, statistics indicate that nearly 70% of used clothing ends up in landfills, which contributes to environmental concerns. On the other hand, only 1% of clothes are recycled into new garments, highlighting the challenges faced in textile recycling. [1]

This issue of textile waste management has led to an environmental crisis, causing negative impacts on the planet. However, SelliX has come up with a solution to tackle the problem. It provides a platform for users to sell their used and unwanted items, and also buy or rent things they need. This way, users can earn money from items they were going to throw away, while also contributing to recycling and minimizing their impact on the environment. This not only results in financial gain but also has a positive mental effect.

Finnish online marketplaces are mainly for a Finnish audience and are likely to be difficult to use for an internationalizing population. This could be fixed by building a platform that everyone can understand.

Our Approach

  • Implement online marketplace utilizing RESTful API connected to a database and front-end client
  • RESTful API must cover necessary CRUD actions for each resource in the marketplace architecture
  • Implementing is done feature by feature taking into account the assessment of the course Programmable Web requirements.

Goals & Success

  • Users can create an account or log in.
  • Users can create and edit listings for items in the marketplace through the front end which utilizes the API.
  • Users can search for items listed by other users.
  • User satisfaction could be tracked with product/seller reviews and ratings.

Solution

Features

  • User Registration
    • Users can create an account providing basic details
  • Browse Listing of Products
    • Navigate through the web app's user-friendly interface to explore various categories like furniture, home decor, and electronics.
  • Search and filtering
    • Search for specific products with keywords, etc. and filter with location, price range, etc.
  • Detailed description of the product
    • Detailed information about the product with multiple images
  • Product reviews
    • Buyers can give ratings and reviews about the products
  • Discounts and offers (consideration)
    • Discounts, deals and offers on products
  • Messaging (consideration)
    • We can build a messaging section or a simple form to send a message and the buyer/seller will get the message as an email
  • Geolocation (consideration)
    • Display product location on Google map

User Flows & Mocks

user-flow.png

A basic sketch of the screen

wireframing.png

Technical Architecture

Data model

data-model.png

System architecture

system-architecture.png

Client

  • Next.js 14
    • Actions
    • Server-side components
    • Partial prerendering
    • Mutating Data
    • Static and Dynamic data
  • Axios
    • Fetching data from the server
  • NextUI
    • Creating visually appealing UI with minimum usage of CSS
  • React testing library
    • Testing components and functionality

Backend API

  • Python 3.9+
    • Server-side scripting language
  • Flask 3.0.x
    • Micro web-based framework
  • Flask-PyMongo 2.3.0
    • Mongo db connector for python
  • Swagger
    • API Documentation

Database

  • MongoDB server 4.4
    • the backend database

Postman

  • API testing and collection too

Links

Front-end documentation

Back-end documentation

Link to Trello

Link to Figma

Group information

Clone this wiki locally