SoilMates, a play on "soul mates," allows users to collect soil data, make posts regarding their soil data and farming needs, and interact with the community by receiving recommendations - similar to Stack Overflow. Recommendations are upvoted by the community if the recommendation supports the farmer. Soil data requests are mediated using a map GUI to get a lat/lng coordinate, and an API fetch is made to the International Soil Research Information Center for soil data. Feel free to visit the live site here
-
Start out by cloning the repository
-
Install the dependencies
pipenv install -r requirements.txt
-
Create .env file, for example:
SECRET_KEY= super_secret_key_name DATABASE_URL=sqlite:///dev.db SCHEMA= schema_name_here
-
Make sure the SQLite3 database connection URL is in the .env file
-
In a terminal in the app directory, set up into your pipenv, migrate your database, seed your database, and run your Flask app:
pipenv shell flask db upgrade flask seed all flask run
-
To run the React App in development, checkout the README inside the
react-app
directory.- Essentially, in a terminal in the react-app folder:
npm install npm start
- Essentially, in a terminal in the react-app folder:
-
Now you can either set up an account or use the demo user option to explore EveryNote
- Users can sign up, log in, and log out.
- Users can use a demo login to try the site.
- Users can't use certain features without logging in (like posting and commenting).
- Logged in users are directed to their home feed where posts made by other users are shown.
- Logged out users are directed to a splash page asking them to login again.
- Logged in users can request soil data by inputting latitude and longitude.
- Logged in users can store and view the data later.
- Logged in users can post the data if they so choose.
- Logged in users can submit posts with or without the soil data.
- Logged in users can edit and delete their own posts.
- Logged in users can view a main feed, or a feed of their posts.
- Logged in users can view the recommendations on their post and the posts of their peers.
- Logged in users can make recommendations on the posts to support the community with their expertise and input.
- Logged in users can edit and delete their own recommendations, or if it is their post, they can delete recommendations.
- Logged in users can view the comments on their recommendations and the recommendations of their peers.
- Logged in users can make comments on the recommendations to respond to specific recommendations.
- Logged in users can edit and delete their own comments, or if it is their own recommendation or post, they can delete the comment.
- Logged in users can view the number of votes a recommendation has received.
- Logged in users can upvote recommendations with which they agree.
- Logged in users can make rescind their vote if they clicked on accident.
- Logged in users can search through posts to find if their question has already been asked.
- Logged in users can choose and avatar (data which will need to persist via AWS)