#Weatherify

Weatherify is an Flask-SQLAlchemy-applikation that creates Spotify playlists based on the weather of a location the users input.

#Functions

-Register and login system
-Creates playlists based on weatherdata
-Updates playlists with new tracks
-Deletes playlists

#Technices
-Python
-Flask
-SQLAlchemy
-Flask-Login
-HTML / Jinja2
-CSS
-JavaScript
-Spotify API
-OpenWeather API

#Installion

1. Clone project
´´´bash
git clone <repository-url>
cd weatherify

2. Create virtuel enviorment

´´´bash
python -m venv venv

Activate enviorment
´´´bash
.venv\Scripts\activate

3. Install requirements
´´´bash
pip install -requirements.txt
´´´
4. Create one env-file

Create an file which is called .env in projects rootmap with personal API-keys:

´´´env
OPENWEATHER_API_KEY=your_openweather_key

client_id=your_spotify_client_id
client_secret=your_spotify_client_secret
redirect_uri=http://127.0.0.1:5000/callback

SECRET_KEY=your_secret_key
´´´
5. Start application
´´´bash 
flask run
´´´
or

´´´bash
python app.py
´´´
6. Open in browser

´´´
http://127.0.0.1:5000
´´´

#Database

Project uses SQLAlchemy.

if database does not exist:

´´´bash
flask shell
´´´

```python
from extensions import db
db.create_all()
```

#Security

-Password are hashed
-Protects from SQL-Injections because of SQLAchemy
-CRSF-protection on forms
-Authentication because of Flask-login

