Crafty is an online crafting platform where users can keep track of project progress and view what others are working on.
- Authentication: Users can sign up, log in, and log out. Passwords are hashed with bcrypt.
- Authorization: Protect routes so only authorized users can view. E.g. restrict profile view for accounts that are private.
- Projects: Authenticated users can add projects as well as log time spent on each project.
- Private accounts: Authenticated users can choose to make their accounts private to restrict access to their profile.
- Follows & Requests: Authenticated users can view projects from users they are following. If a user is private, a follow request will be created.
- Profile management: Authenticated users can edit account information.
This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.
- Clone the repo:
git clone https://github.com/aninishioka/craft_app
- cd into project directory and create a virtual environment:
python3 -m venv venv source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Set up database:
createdb craft_app python seed.py
- Create a .env file with following variables:
SECRET_KEY=abc123 DATABASE_URL=postgresql:///craft_app
- Start the server:
flask run
There are four test files for testing data models and views for messages and users.
Run test files with the following command:
FLASK_DEBUG=False python -m unittest <name-of-test-file>