This app allows users to create, manage, and participate in virtual book clubs. 📖💬
To set up the frontend and backend dependencies, from the root directory, run:
$ npm install --prefix client
From the server/
directory, run:
$ flask db upgrade
$ python seed.py
To start the server and to see how the React application and Flask API are interacting, you can run the Flask application in one terminal by running the following prompt from the server/
directory:
$ python app.py
Then open another terminal and run React from the root directory:
$ npm start --prefix client
Users with an existing account will be directed to sign in by entering an email and password upon loading the app.
Users who don't already have an existing account can sign up for one by clicking the link on the login page and entering their information.
Upon logging in, users will be taken to a home page with listing the groups they host and the groups they participate in.
Upon clicking on a group they host, users will be taken to the main page for the group where they can view and edit various details about the group, including membership, featured book, and discussion prompts.
The group host can add members by clicking on the 'Add Member' button and entering the email address of another registered user.
The host can also remove a member from the group by clicking on the 'x' button next to their name.
The host can add a new discussion prompt by clicking the 'New Prompt' button and entering the prompt text in the field. Upon submit, the new prompt will be added to the 'Discussions' panel.
Within the 'Members' panel, group participants do not have access to any actions (i.e., adding/removing members, adding prompts), unlike the group host.
Clicking on 'Comments' beneath a given prompt will expand the view to show the comment thread for that prompt. Users can scroll through to read the entire conversation.
Clicking on the 'Add Comment' button beneath a given prompt will open an input field where users can add a new comment in that thread. Upon submit, the new comment will be added on to the end of the thread.
Upon clicking the 'Log Out' button at the top of the page, the user is redirected to the 'Sign In' page.
Future additions include:
- Allow participants in a book club to suggest the next book, then allowing the Host to choose out of the suggestions or input their own.
- Integrate an API to be able to suggest books, and render book info easily.
- Implement rating/review system.
This project was created by Bianca Aspin and Tricia Hughes.