---
# System prepended metadata

title: Week 18 Roadmap

---

# Week 18 Roadmap

---

### Technologies
- Today: pipenv, unittest, pytest
- Tuesday: Flask, Jinja, psycopg2, WTForms & Flask-WTF
- Wednesday: SQlAlchemy & Flask-SQLAlchemy
- Thursday: Alembic & Flask-Migrate
- Friday: Review


---

### Flask (Tuesday)
- Flask is a server (like Express, but for Python)
- https://flask.palletsprojects.com/

---

### Jinja (Tuesday)
- Templating language (like Pug)
- https://jinja.palletsprojects.com/en/2.11.x/

---

### psycopg2 (Tuesday)

- Allows our Flask app to communicate with a Postgres database
- Can be used to interact with database directly, but more convenient to use with an ORM. 
- The ORM still needs psycopg2 to connect to the database
- https://www.psycopg.org/docs/index.html#

---

### WTForms & Flask-WTF (Tuesday)
- WTForms is a form validation library—it's not necessary to render forms or validate data, it just makes things easier
    - https://wtforms.readthedocs.io
- Flask-WTF integrates WTForms with a Flask application
    - https://flask-wtf.readthedocs.io

---

### SQLAlchemy & Flask-SQLAlchemy (Wednesday)
- SQLAlchemy is an object-relational mapping tool (ORM) to make it easier to interact with our database. (like Sequelize)
    - https://docs.sqlalchemy.org/en/14/index.html

- Flask-SQLAlchemy allows Flask applications to work with SQLAlchemy in a more streamlined way.
    - https://flask-sqlalchemy.palletsprojects.com



---

### Alembic & Flask-Migrate (Thursday)
- Alembic is a database migration tool that works with SQLAlchemy
    - https://alembic.sqlalchemy.org
- Flask-Migrate integrates alembic with a Flask application
    - https://flask-migrate.readthedocs.io


---

### Today

- Job search prep: behavioral interview questions
    - Presentation Skills reading (20min)
    - Interview Practice activity (~45min)
- Python environment management and Python unit testing
    - Lecture videos + follow-up and QA
- NOTE: do not install pipenv using the steps on App Academy Open. You should have installed pipenv last week [(instructions here)](https://github.com/appacademy/unified-setup/blob/main/python-setup.md#pipenv). (You can check by running `pipenv --version`. If it comes back with a version, you're all set).
- Python Unit Testing project