Skip to content

Serenade is a multipurpose tool that allows users to create 'virtual date cards' for their loved individual and their dates, and displays a user's top most played tracks on Spotify & Last.fm.

License

Notifications You must be signed in to change notification settings

raianah/serenade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💌 Serenade

✨ Inspired by Receiptify, Serenade is a multipurpose tool that allows users to create 'virtual date cards' for their loved individual and their dates, and displays a user's top most played tracks on Spotify & Last.fm (soon).


Serenade - 0.0.4 beta dependency - django Instagram - @raianxh_

🌟 What is Serenade?

  • Serenade is a web applications that can create personalized date invitations, and create your ultimate music recap from Spotify & Last.fm. It has two parts:
    • 💌 Will You Date Me? (WYDM) – Create personalized and digitalized date invitations that truly stand out. Will you date me?
    • 🎧 Serenade Recap – Display your top tracks, artists, genres, and top trends with many colors to choose. Style your recap as if it will impress someone!
Music meets connection. 🎶

✨ Features

Spotify Recap, with variations! – View your top tracks, artists, genres, & trends in a simple yet lovely design. Choose up to 5 colors for your preference! ✅ Custom Date Invitations – Send personalized date invitations with unique slugs, which your other half can access it uniquely.
Beautiful Auto-Generated Images – Every recap & invite is instantly converted into a shareable image that can be accessible in your gallery. Save the moment! ✅ Fully Mobile-Friendly – Designed to look & feel amazing on any device.

Your song, their spark.

🎨 Screenshots

Preview #1 Preview #2 Preview #3 Preview #4 Preview #5

🚀 Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/raianah/serenade.git
cd serenade
  • If you know how to deal with django, you can do
django-admin startproject <folder-name>

2️⃣ Install Dependencies

pip install -r requirements.txt

3️⃣ Set Up Your Environment

  • Spotify clients can be generated here.
  • Last.fm clients can be generated here.
  • .env should be in root folder
export SPOTIPY_CLIENT_ID="your-client-id"
export SPOTIPY_CLIENT_SECRET="your-client-secret"
export SPOTIPY_REDIRECT_URI="http://localhost:8000/callback/"

export LASTFM_API_KEY = "your-api-key"
export LASTFM_API_SECRET = "your-api-secret"

export DB_USER = 'your-database-username'
export DB_PASS = 'your-database-password'
export DB_HOST = '127.0.0.1' # or your IP if you are hosting on a different server
export DB_PORT = '8000' # Default: 8000. Change this if you are hosting on a different server

4️⃣ Set Up Your Database Information

  • You can pick between PostgreSQL, MySQL / MariaDB, or SQLite. You can name your database anything you want. Consider the checks that the project can use.
    • There should be atleast one (1) table.
    • There should be atleast five (5) columns inside the table.
    • If PostgreSQL was used, you must name the database first.

4️⃣ Connect Your Database Information

  • wydm_project/settings.py - PostgreSQL
    • psycopg[binary] library must be installed.
import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'db_name', # Change this to your database name
        'USER': os.getenv("DB_USER"),
        'PASSWORD': os.getenv("DB_PASS"),
        'HOST': os.getenv("DB_HOST"),
        'PORT': os.getenv("DB_PORT"),
    }
}
  • wydm_project/settings.py - MySQL / MariaDB
    • mysqlclient library must be installed.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name', # Change this to your database name
        'USER': os.getenv("DB_USER"),
        'PASSWORD': os.getenv("DB_PASS"),
        'HOST': os.getenv("DB_HOST"),
        'PORT': os.getenv("DB_PORT"),
    }
}
  • wydm_project/settings.py - SQLite3
    • sqlite3 must be installed (should be pre-installed along with python).
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / "db.sqlite3", # change db.sqlite3 to your SQLite DB name
    }
}
  • After modifying wydm_project/settings.py, head to wydm_app/models.py and begin modifying the columns and tables you have created.
from django.db import models
import uuid

class Invitation(models.Model):
    sender_name = models.CharField(max_length=100, db_column="your-table-column")
    recipient_name = models.CharField(max_length=100, db_column="your-table-column")
    slug = models.SlugField(unique=True, default=uuid.uuid4, db_column="your-table-column", primary_key=True)
    option = models.IntegerField(db_column="your-table-column")
    message = models.TextField(db_column="your-table-column", default="")

    class Meta:
        db_table = "your-table-name"

4️⃣ Run the Server

python manage.py migrate
python manage.py runserver

🚀 Official Website

About

Serenade is a multipurpose tool that allows users to create 'virtual date cards' for their loved individual and their dates, and displays a user's top most played tracks on Spotify & Last.fm.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published