Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 36 additions & 16 deletions create_table.sql
Original file line number Diff line number Diff line change
@@ -1,10 +1,41 @@
CREATE TABLE users (
id serial,
user_name varchar(50) NOT NULL UNIQUE,
username varchar(50) NOT NULL,
password varchar(50) NOT NULL,
PRIMARY KEY (id)
PRIMARY KEY (id),
UNIQUE(username, password)
);

CREATE TABLE artists (
artist_id serial,
artist_name varchar(50) UNIQUE NOT NULL,
PRIMARY KEY(artist_id)
);

CREATE TABLE tracks (
track_id serial,
track_name varchar(50) UNIQUE NOT NULL,
description varchar(500),
artist_name varchar(50) NOT NULL,
plays integer DEFAULT 0 NOT NULL,
track_path varchar(500) NOT NULL,
PRIMARY KEY (track_id),
FOREIGN KEY (artist_name) REFERENCES artists(artist_name)
-- genre_id integer NOT NULL,
-- album_id integer,
-- art_path varchar(500),
-- FOREIGN KEY (artist_id) REFERENCES users(id) ON DELETE CASCADE,
-- FOREIGN KEY (genre_id) REFERENCES genres(id) ON DELETE CASCADE
);

/*
CREATE TABLE media (
user_id integer UNIQUE,
track_id integer
);
*/

/*
CREATE TABLE playlists (
id serial,
playlist_name varchar(50) NOT NULL,
Expand All @@ -13,6 +44,7 @@ CREATE TABLE playlists (
PRIMARY KEY (id),
FOREIGN KEY (creator_id) REFERENCES users(id)
);
*/

/*
CREATE TABLE genres (
Expand All @@ -34,21 +66,8 @@ CREATE TABLE albums (
);
*/

CREATE TABLE tracks (
id serial,
track_name varchar(50) NOT NULL,
description varchar(500),
-- artist_id integer NOT NULL,
-- genre_id integer NOT NULL,
-- album_id integer,
plays integer DEFAULT 0 NOT NULL,
track_path varchar(500) NOT NULL,
art_path varchar(500),
PRIMARY KEY (id)
-- FOREIGN KEY (artist_id) REFERENCES users(id) ON DELETE CASCADE,
-- FOREIGN KEY (genre_id) REFERENCES genres(id) ON DELETE CASCADE
);

/*
CREATE TABLE playlist_tracks (
id serial,
playlist_id integer NOT NULL,
Expand All @@ -57,6 +76,7 @@ CREATE TABLE playlist_tracks (
FOREIGN KEY (playlist_id) REFERENCES playlists(id),
FOREIGN KEY (song_id) REFERENCES tracks(id)
);
*/

/*
CREATE TABLE comments (
Expand Down
73 changes: 73 additions & 0 deletions init_db.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import psycopg2
from psycopg2 import sql

import random

def create_db(db_name, user, password, host, port):
# Connect to postgresql database first
print(f"Created {db_name} database")
connection = psycopg2.connect(dbname=db_name, user=user, password=password, host=host, port=port)
connection.autocommit = True # Allows us to operate outside of a transaction (basically create database)
cursor = connection.cursor()

# Switch to db to soundclown and create it
db_name = "soundclown"
cursor.execute(sql.SQL(f"CREATE DATABASE {db_name}"))
connection.close()
connection = psycopg2.connect(dbname=db_name, user=user, password=password, host=host, port=port)
connection.autocommit = True # Allows us to operate outside of a transaction (basically create database)
cursor = connection.cursor()
print("Created {db_name} database")
return connection, cursor


def create_table(cursor):
# Create tables
cursor.execute('''CREATE TABLE users (
user_id serial,
user_name varchar(50) NOT NULL,
password varchar(50) NOT NULL,
PRIMARY KEY (user_id),
UNIQUE(user_name, password)
)''')

cursor.execute('''CREATE TABLE artists (
artist_id serial,
artist_name varchar(50) UNIQUE NOT NULL,
PRIMARY KEY(artist_id)
)''')
cursor.execute('''CREATE TABLE tracks (
track_id serial,
track_name varchar(50) UNIQUE NOT NULL,
description varchar(500),
artist_name varchar(50) NOT NULL,
plays integer DEFAULT 0 NOT NULL,
track_path varchar(500) NOT NULL,
PRIMARY KEY (track_id),
FOREIGN KEY (artist_name) REFERENCES artists(artist_name)
)''')

print("Finished creating tables")


def insert_items(cursor):
for i in range(1, 101):
user = f"user{i}"
password = f"pw_{i}"
cursor.execute(f'''INSERT into users (user_name, password)
VALUES('{user}', '{password}')''')


# Add inserting tracks and artists once I know what they are


if __name__ == "__main__":
db_name = "postgres"
user = "postgres"
password = "password"
host = "localhost"
port = "5432"
connection, cursor = create_db(db_name, user, password, host, port)
create_table(cursor)
connection.close()
print("Done")
23 changes: 22 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,29 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
Expand Down
6 changes: 6 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
psycopg2-binary==2.9.9
requests==2.31.0
urllib3==2.2.1
123 changes: 0 additions & 123 deletions src/main/java/com/SoundClown/App.java

This file was deleted.

58 changes: 0 additions & 58 deletions src/main/java/com/SoundClown/Tracks.java

This file was deleted.

Loading