Skip to content

blizzardOfAce/thriftr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Thriftr – Peer-to-Peer Marketplace App

πŸ“Œ Overview

Thriftr is a marketplace app for seamless product buying and selling with a responsive and smooth user experience.

✨ Features

  • User Authentication: Secure and responsive user verification and session tracking.
  • Product Listing: Users can browse and post products for sale.
  • Real-Time Search & Filtering: Fast search with responsive filtering for a fluid browsing experience.
  • Wishlist & Cart Management: Includes wishlist with gesture support and real-time cart updates.
  • Optimized Image Handling: Efficient image caching and loading for better performance.
  • Smooth Animations: Enhanced UI transitions for a polished user experience.
  • Secure Data Handling: Backend with debounced network calls and robust security measures.

πŸ›  Technologies Used

πŸ“Έ Screenshots

β˜€οΈ Light Mode

Register Home Sort
Drawer Wishlist Checkout

πŸŒ™ Dark Mode

Start Add Product Login
Home Product Details Wishlist
Cart Profile Edit Profile
Order Confirmation Orders Settings

🎬 Demo

thriftr_demo.mp4

πŸš€ Setup Guide

1️⃣ Clone the Repository

git clone https://github.com/blizzardOfAce/thriftr.git
cd Thriftr

πŸ”§ 2️⃣ Appwrite Setup:

Note
For security and customization purposes, this project does not include Appwrite-related IDs.
You’ll need to set up your own Appwrite project and manually copy the required IDs
(Project ID, Database ID, Collection IDs, and Bucket IDs) into your local.properties file.


πŸš€ Create an Appwrite Project

  • Go to Appwrite Console or your self-hosted instance.
  • Create a new project (e.g., "Thriftr").
  • Get your Project ID from the dashboard.

πŸ—ƒοΈ Create a Database

  • Go to Databases β†’ Create Database (e.g., "thriftr-db").
  • Copy the Database ID.

πŸ—‚οΈ Create Collections

In your database, create the following collections with appropriate permissions (enable CRUD operations for All Users for testing purposes):

a. πŸ‘€ Users Collection
Collection Name: user_collection
Attributes:
- FirstName (String)
- LastName (String)
- Email (Email)
- ImagePath (String)
- SavedAddresses (String[])
- Id (String)
b. πŸ›οΈ Products Collection
Collection Name: product_collection
Attributes:
- id (String)
- name (String)
- category (String)
- price (Double)
- freeShipping (Boolean, default: false)
- stock (Integer, default: 0)
- discount (Double)
- description (String)
- details (String)
- colors (String[])
- sizes (String[])
- images (String[])
c. πŸ›’ Cart Collection
Collection Name: cart_collection
Attributes:
- userId (String)
- products (String[])
d. πŸ‘ Wishlist Collection
Collection Name: wishlist_collection
Attributes:
- userId (String)
- productId (String)
e. πŸ“¦ Orders Collection
Collection Name: order_collection
Attributes:
- orders (String[])

πŸ“ Create Storage Buckets

Create two storage buckets:

  • Product Images Bucket (e.g., "product_images_bucket")
  • Profile Images Bucket (e.g., "profile_image_bucket")

Enable file read and write access for authenticated users.
Copy both Bucket IDs.

3️⃣ Configure Local Properties

Create a local.properties file in the root directory if it doesn't exist and add all the respective ids:

APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=your_project_id
APPWRITE_DATABASE_ID=your_database_id
APPWRITE_USER_COLLECTION_ID=your_user_collection_id
APPWRITE_PRODUCT_COLLECTION_ID=your_product_collection_id
APPWRITE_CART_COLLECTION_ID=your_cart_collection_id
APPWRITE_WISHLIST_COLLECTION_ID=your_wishlist_collection_id
APPWRITE_ORDER_COLLECTION_ID=your_order_collection_id
APPWRITE_PRODUCT_IMAGE_BUCKET_ID=your_product_image_bucket_id
APPWRITE_PROFILE_IMAGE_BUCKET_ID=your_profile_image_bucket_id

4️⃣ Build & Run πŸš€

./gradlew assembleDebug

Open the project in Android Studio, connect a device, and run the app! πŸŽ‰

πŸ—ΊοΈ Roadmap

  • Improving animations and transitions
  • Enhanced product management with a dashboard

🀝 Contributing

Contributions are welcome! Here's how you can contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

About

A modern marketplace app built with Jetpack Compose, MVVM, Clean Architecture, and Appwrite as the backend.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages