Hi 🙌. We are delighted to see your interest in helping our team build a complete solution for teachers to share notes, assignments with students. Our web app is based on Python's flask framework and its deployed to Heroku: https://notes-ever.herokuapp.com.
Let's get started with setting up the development enviornment for our app to run locally on your system. Please read all the steps below carefully.
Note: we recommend executing all the below commands in Bash or any Unix based Terminal. Also, launch your terminal with administrative privileges.
First you need to install Git. Then you need to fork our repository located at https://github.com/buildHuge/Notes-Ever.
After forking you will be redirected to your forked copy. Now let's clone the forked copy.
git clone https://github.com/<YOUR_GITHUB_USERNAME>/Notes-Ever.gitChange directory to the newly downloaded forked copy.
cd Notes-EverNow doing ls should output the contents application.py, /notes_ever, sample.env, ...so on.
In Git usually origin is referred to as your forked copy and upstream is the original repository from which you forked. And origin and upstream are called remotes.
So in our case upstream is the repo located at https://github.com/buildHuge/Notes-Ever and origin is your forked copy at https://github.com/<YOUR_GITHUB_USERNAME>/Notes-Ever.
Git automatically configures the origin remote by pointing to the repo from where you cloned. We need to add upstream remote by ourselves.
git remote add upstream https://github.com/buildHuge/Notes-Ever.gitCheck if remotes were successfully added by typing git remote -v. You will get output like this if remotes were added successfully:
origin https://github.com/<YOUR_GITHUB_USERNAME>/Notes-Ever.git (fetch)
origin https://github.com/<YOUR_GITHUB_USERNAME>/Notes-Ever.git (push)
upstream https://github.com/buildHuge/Notes-Ever.git (fetch)
upstream https://github.com/buildHuge/Notes-Ever.git (push) You need the latest version of Python to run the app. After installing Python follow the below process.
# Reminder: execute the below commands in `Bash` with administrative privileges
# Installs pipenv globally
pip install pipenv
# Activates virtualenv using python 3 and clears cache
pipenv shell --three
# The below command installs dependencies in a virtualenv using python 3.x.x
pipenv install --dev
# Copies `sample.env` to `.env` to allow loading of env vars
# You can paste your API credentials in `.env` file
cp sample.env .env
# Runs the app, served at http://localhost:5000 by default
flask runWe should always work in branches to keep the master undisturbed and enforce a good collaboration enviornment.
Before creating a new branch ALWAYS perform the below steps to ensure that when you branch off from master you have the latest upstream version.
# The below command fetches the latest upstream work
git fetch upstream
# Makes sure you are on master
git checkout master
# Reset your local master with upstream/master
git reset --hard upstream/master
# Push to your origin repository
git push --force origin master
# Branching off! Now we can create and switch to a new branch
git checkout -b <A_GOOD_BRANCHNAME>We have switched to a new branch. Now you can make changes to files, add new ones or do whatever you wish.
Once you have made the changes you should flask run to test the app.
If you are satisfied with the changes you can push to origin to create a PR.
# Adds all the modified files
git add .
# Commit the changes
git commit -m "A short descriptive message"
# Push to origin to create a PR
git push origin <NAME_0F_BRANCH_YOU_CREATED>Now go to https://github.com/<YOUR_GITHUB_USERNAME>/Notes-Ever and click on Compare and Pull Request to start creating a PR.
Write a good title and please describe the changes you made. Write Closes #IssueNumber to close the issue you worked on when the PR gets merged. For e.g. if I worked on issue #3 then writing Closes #3 will close issue #3 when my PR gets merged.


