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.
- 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.
- 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.
- 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.
-
Server-side is developed using Nest.js framework.
-
Mobile app is developed using Expo on top of React Native.
-
Runtime and task management are handled by Bun.
-
The primary language used was TypeScript.
-
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
Home Screen | Brokers Screen | Item Screen |
---|---|---|
- To explore the Prisma schema models, click here.
Onboarding screen | Home screen | Add Item screen |
---|---|---|
Chat screen | Profile Screen | Meetup Verify Screen |
Overview screen | Users Submenu screen |
---|---|
Insights Submenu screen | Finances Submenu Screen |
- 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 | |
---|---|
To set up Baddil locally, follow these steps:
First of all you need your runtime environment. Baddil uses "Bun" to be set up. You can install bun by running the following command:
-
npm install -g bun
Below are instructions how to run Baddil.
- Clone the repository:
git clone https://github.com/IbrahimItani01/baddil.git
-
Install dependencies
bun install
-
Setup Firebase project for authentication.
-
Obtain your OpenAI api.
-
Create your MySQL database.
-
Visit the .env.example file and follow the key-naming structure.
-
To setup the database:
cd src/database/prisma
npx prisma generate
npx prisma db push
- To seed the database:
cd src/database
bun seed
- 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!