StoryScout allows parents to discover new children’s books, guided by the trusted ratings and reviews of fellow parents. The app was built using React for the frontend and Python (Flask) for the backend.
Deployed application is available here.
- Browse list of children’s books and filter by topic, rating, or age recommendation
- View more details on individual books including title, author, description, ratings, reviews, etc.
- Add a book to your “stack” or book list to save and access later
- Write a review for a book, including adding an optional rating and age recommendation
- Edit or delete your user profile
Fork and clone this repo from Github to your local environment.
Install and Run Backend Dependencies
- Ensure Python and Flask are installed on your system
- Navigate to the root directory of the project
- Run
pipenv installto install dependencies - Run
pipenv shellto create virtual environment - Run
python server/app.pyto run the Flask application
.env set up
Create .env file in the root directory and add the following to the file:
FLASK_APP=app.py
FLASK_RUN_PORT=5555
SESSION_SECRET=[See Note Below]Session Secret
- In your terminal, run
python -c 'import secrets; print(secrets.token_hex())’to generate your own session secret key. - Copy the result into the .env file as the value for the secret key.
- Make sure .env is added to your .gitignore.
Configuring the Database
- In the terminal,
cdinto the server directory. Run the following commands:
flask db init
flask db upgrade
python seed.py (this will seed the database)Install and Run Frontend Dependencies
- Ensure Node.js and npm (Node Package Manager) are installed on your system.
- In another terminal,
cdinto the client directory within the project. - Run
npm installto install all the necessary node modules. - Run
npm startto open the app in the browser
Distributed under the MIT License. See LICENSE for more information.
Steph Bertram | GitHub | LinkedIn
- Homepage image, LumiNola, "I'm gonna read this whole book today stock photo", iStock