Skip to content

innasoboleva/Read-Meet

Repository files navigation

Read & Meet

About The Project

Introducing Read&Meet: Your Gateway to One-Time Book Club! Read&Meet is an app designed to empower book enthusiasts to connect, engage, and discuss their favorite books by scheduling meeting in preson or online.

Here's what you can do with BookMeet:

  1. User:
    Create new user and log in to be able to use this app fully!
  2. Book Discussion Meetings:
    Create and host book discussion meetings centered around your favorite books. Choose the date, time, and location for your meeting, record a video note for inviting more guests.
  3. Meeting Discovery:
    Browse a diverse range of upcoming book discussion meetings created by fellow users for each possible book.
  4. Book Selection:
    Select your preferred choice of book for your meeting from an extensive library of titles.
  5. Check reviews:
    Take a look at what people are saying about each book right here on web-app.
  6. Discussions:
    Engage in lively discussions with participants about the chosen book.
  7. Community Building:
    Connect with like-minded individuals who share your passion for reading and book discussions.
  8. Seamless User Experience:
    Enjoy a user-friendly interface that makes creating and managing meetings a breeze.

Experience the joy of discussing your favorite books with others who share your enthusiasm. With Read&Meet, every book discussion becomes an opportunity for insightful conversations, new friendships, and unforgettable reading experiences. Join us today and let the world of books come alive like never before!

Project Tech Stack

Python, JavaScript, HTML5, CSS3, Flask, SQLAlchemy, PostgreSQL, AJAX, Jinja2, React, Bootstrap, JSON, Pytest

APIs Used

Google Books API, Yelp API, MediaStream API, Selenium, AWS SDK

Data Model

Reed&Meet is using a PostgreSQL database and SQLAlchemy as an ORM.  Detailed data model

Features

On the main page I implemented bootstrap carousel featuring popular books. This information was scraped from blog on GoodReads using Selenium. Also I've implemented sign in and sign up methods. If input is not correct, error message is displayed.  Sign in form

I integrated Google books api for book search. List of results is shown after processing JSON response.  List of books after search

After selecting a book, a request is sent for fetching reviews from Goodreads using Selenium framework. I created a form where users can schedule new meetings.  Meeting form and reviews from Goodreads on book details page

For meeting in person address is required. I integrated Yelp API to help search for a place using user's provided zipcode.  Meeting form with option to search for place on Yelp

I implemented a Video Recorder using the MediaStream API for creating video notes. Before submission, video is available for review or re-recording.  Meeting form with option to record video note

Different react components on the main page are interconnected and display meetings that users can join, drop from or cancel if already created. They are dynamically updated upon receiving JSON success response from the server. I implemented security methods to ensure that users won’t join same meetings twice.  Main page with React components

Video note is also available for streaming on main page.

Notifications are displayed on top of the screen. Each message is independent and has its own timer set for 15 sec.  Notifications for users

Installation

To run Read&Meet on your local computer, follow these steps:

Clone or fork this repo:

https://github.com/innasoboleva/Read-Meet.git

Create and activate a virtual environment inside your Read-Meet directory:

virtualenv env
source env/bin/activate

Install the dependencies:

pip install -r requirements.txt

Sign up to use Amazon S3, Yelp API, and Google Books API. Generate random secret key for Flask.

Save your API keys in a file called secrets.sh, using this format:

export BOOK_KEY="YOUR_GOOGLE_KEY_HERE"
export YELP_KEY="YOUR_YELP_KEY_HERE"
export FLASK_KEY="YOUR_FLASK_KEY_HERE"
export ACCESS_KEY="YOUR_AMAZON_KEY_HERE"
export ACCESS_KEY_ID="YOUR_AMAZON_ID_HERE"

Source your keys from your secrets.sh file into your virtual environment:

source secrets.sh

Set up the database:

createdb readmeet
python3 model.py

Run the app:

python3 server.py

You can now navigate to 'localhost:5000/' to access Read&Meet app.

Show Your Support

Please, 👍 or ⭐ if it was helpful.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors