Skip to content

Full-stack bartering platform featuring AI-driven features and tools for admins, brokers, and barterers.

Notifications You must be signed in to change notification settings

IbrahimItani01/baddil

Repository files navigation



Baddil is a platform that aims to simplify the process of bartering in a secure way! Baddil aims to redefine how people trade goods and services by introducing modern tools like AI assistance, dynamic user interfaces, and automated workflows. The vision of Baddil is to create a community of trust and efficiency, empowering users to achieve their bartering goals effortlessly.

User Stories

Admin

  • As an admin, I want to flag suspicious activities, so I can ensure a safe and trustworthy platform.
  • As an admin, I want to manage notifications, so I can keep users informed about important updates.
  • As an admin, I want to handle disputes between users, so I can ensure fair resolutions and maintain a positive community.

Barterer

  • As a barterer, I want to verify the identity of the person I’m trading with, so I can feel secure during the exchange.
  • As a barterer, I want to communicate through a secure chat system, so I can ensure that all discussions remain within the platform.
  • As a barterer, I want help planning my bartering goals, so I can receive recommendations on how to reach my desired item efficiently.

Broker

  • As a broker, I want to manage trade deadlines on a calendar, so I can efficiently organize my clients' trades.
  • As a broker, I want to manage my income from clients and the platform, so I can keep track of my earnings and monitor performance.
  • As a broker, I want to view trade details easily, so I can provide accurate advice and support to my clients.



Baddil is built using the following technologies

  • Server-side is developed using Nest.js framework.

  • Database is developed using Prisma with MySQL.

  • Mobile app is developed using Expo on top of React Native.

  • Admin and broker web apps are developed using React + Vite.

  • Runtime and task management are handled by Bun.

  • The primary language used was TypeScript.

  • Authentication is handled through Firebase and JWT.

  • State management on the frontend is handled using Redux.

  • AI features, including recommendations, trade planning, and analysis, are powered by OpenAI.



We designed Baddil with a user-centric approach, emphasizing simplicity, clarity, and ease of use. Multiple wireframes were tested, and mockups were iterated upon to ensure a design that aligns with the vision of Baddil.

  • Project Figma design figma

Mockups

Home Screen Brokers Screen Item Screen
Landing Brokers Item



Building Better Databases: Innovative Approaches to Data Design

  • To explore the Prisma schema models, click here.



Barterer Screens (Mobile)

Onboarding screen Home screen Add Item screen
Onboarding Home AddItem
Chat screen Profile Screen Meetup Verify Screen
Landing Profile Meetup

Admin Screens (Web)

Overview screen Users Submenu screen
Overview Users
Insights Submenu screen Finances Submenu Screen
Insights fsdaf



The Art of Prompt Engineering: Crafting Effective AI Interactions

  • AI is at the heart of Baddil! We leveraged the OpenAI API and prompt engineering to deliver powerful features: recommending the most relevant category to search in, evaluating user credibility, and suggesting the optimal item from the user's wallet to barter with.
Prompts
Prompt ValueGeneration
Insights fsdaf



To set up Baddil locally, follow these steps:

Prerequisites

First of all you need your runtime environment. Baddil uses "Bun" to be set up. You can install bun by running the following command:

  • bun

    npm install -g bun

Installation

Below are instructions how to run Baddil.

Common Steps:

  1. Clone the repository:
git clone https://github.com/IbrahimItani01/baddil.git
  1. Install dependencies

    bun install

Server-Side

  1. Setup Firebase project for authentication.

  2. Obtain your OpenAI api.

  3. Create your MySQL database.

  4. Visit the .env.example file and follow the key-naming structure.

  5. To setup the database:

cd src/database/prisma
npx prisma generate
npx prisma db push
  1. To seed the database:
cd src/database
bun seed

Client-Side

  1. Check in ./apis/main.ts the currentIp. Change its values to your currentIp.

Now, you should be able to run Baddil locally and explore its features!

About

Full-stack bartering platform featuring AI-driven features and tools for admins, brokers, and barterers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published