Skip to content

viveeeeeek/p2pbookshare

Repository files navigation

P2P BoookShare

A user-friendly Flutter app for college students to share and borrow books on campus.

GitHub Downloads (specific asset, latest release) GitHub Repo stars GitHub Release GitHub last commit





Features

  • 🤖 AI-Generated Summaries: Get concise and insightful book summaries powered by Gemini.
  • 🎨 Material & Dynamic Theming: Enjoy a visually appealing interface with adaptive color schemes, including light and dark modes.
  • 💬 Chat Integration: Seamlessly communicate with other users for smooth book exchanges.
  • 🗺️ Google Maps Integration: Easily select and share locations for meetups and book exchanges.
  • 🔍 Advanced Search: Quickly find your favorite books and authors using the powerful search bar.
  • 📲 Push Notifications: Stay informed with real-time notifications for chat messages.

🔨 Steps to build

  1. Clone the project:

    • Use git clone https://github.com/viveeeeeek/p2pbookshare.git to download the project from the GitHub repository.
  2. Install Dependencies:

    • Navigate to the project directory and run flutter pub get to install the required dependencies.
  3. Set Up Environment Variables (.env File):

     GOOGLE_MAPS_API_KEY=YOUR_GOOGLE_MAPS_API_KEY
     GEMINI_PRO_API_KEY=YOUR_GEMINI_PRO_API_KEY
     FIREBASAE_PROJECT_ID=YOUR_FIREBASE_PROJECT_ID
    
    • Google Maps API Key: Create a project in the Google Cloud Console and enable the Google Maps Platform APIs and obtain the API key.
    • Gemini Pro API Key: Obtain currently Gemini Pro API key, which is free of cost as of now here.
    • Firebase Project Information: Create a Firebase project in the Firebase Console and note down the Project ID and API Key for Cloud Messaging.
  4. Configure Firebase for both iOS and Android platforms:

    • Ensure the build.gradle file is properly set up and includes all necessary Firebase dependencies. Add the google-services.json file for Android and the GoogleService-Info.plist file for iOS to your project. Additionally, create and include the firebase_options.dart file in the lib/ directory to manage Firebase configuration options.
  5. Configure both debug and release builds in the app/build.gradle file. Create and properly set up the key.properties file to securely manage your signing keys and other sensitive information.

    keyAlias=key-alias
    keyPassword=key-password
    storeFile=/path/to/kestore
    storePassword=key-store-password
  6. Create a service account within the Google Cloud Console and obtain the service_account.json file, which is used for sending push notifications on Android. Place this file in the assets/fcm/ folder of your project.

    • Create a Service Account in Google Cloud Console
    • Navigate to the Google Cloud Console.
    • Go to the "IAM & Admin" section and select "Service Accounts".
    • Click "Create Service Account".
    • Provide a name and description for the service account.
    • Grant the service account the "Firebase Admin SDK Administrator Service Agent" role.
    • After creating the service account, go to the "Keys" section of your new service account.
    • Click "Add Key" and select "Create New Key".
    • Choose "JSON" format and click "Create".
    • Download the service_account.json file.
    • Place the downloaded service_account.json file in the assets/fcm/ folder of your Flutter project.

Contribution

All contributions are very welcome!

  • Bug reports and feature requests can be submitted here.
  • If you are a developer and wish to contribute to the app, please fork the project and submit a pull request .
Copyright (c) 2024, VivekS.
All rights reserved.

This source code is licensed under the GPLv3-style license found in the
LICENSE file in the root directory of this source tree.

About

Intuitive Flutter app facilitating easy book borrowing and lending among college students.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages