From a4f27ded39c480fb9e7ebae894c7065d37053ed2 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 19:13:02 -0500 Subject: [PATCH 01/18] added needed files --- finance_dashboard/README.md | 0 finance_dashboard/app.py | 1 + finance_dashboard/requirements.txt | 0 3 files changed, 1 insertion(+) create mode 100644 finance_dashboard/README.md create mode 100644 finance_dashboard/app.py create mode 100644 finance_dashboard/requirements.txt diff --git a/finance_dashboard/README.md b/finance_dashboard/README.md new file mode 100644 index 0000000..e69de29 diff --git a/finance_dashboard/app.py b/finance_dashboard/app.py new file mode 100644 index 0000000..4ebb4dc --- /dev/null +++ b/finance_dashboard/app.py @@ -0,0 +1 @@ +##finance dashboard issue :] \ No newline at end of file diff --git a/finance_dashboard/requirements.txt b/finance_dashboard/requirements.txt new file mode 100644 index 0000000..e69de29 From 09163f1d3fc6c3307c4ae12eac20e3c4ed810b82 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 19:24:13 -0500 Subject: [PATCH 02/18] implemented a simple finance dashboard setup --- finance_dashboard/README.md | 9 +++++++++ finance_dashboard/app.py | 25 ++++++++++++++++++++++++- finance_dashboard/requirements.txt | 2 ++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/finance_dashboard/README.md b/finance_dashboard/README.md index e69de29..bcd6045 100644 --- a/finance_dashboard/README.md +++ b/finance_dashboard/README.md @@ -0,0 +1,9 @@ +# Finance Dashboard + +This is a beginner-friendly finance dashboard built with Flask. +It allows users to track expenses and view total spending. + +## Setup +1. Install requirements: + ```bash + pip install -r requirements.txt diff --git a/finance_dashboard/app.py b/finance_dashboard/app.py index 4ebb4dc..29a94a5 100644 --- a/finance_dashboard/app.py +++ b/finance_dashboard/app.py @@ -1 +1,24 @@ -##finance dashboard issue :] \ No newline at end of file +##finance dashboard issue :] +from flask import Flask, render_template_string + +app = Flask(__name__) + +# Sample expense data +expenses = [ + {"category": "Food", "amount": 120}, + {"category": "Rent", "amount": 800}, + {"category": "Transport", "amount": 60}, +] + +@app.route("/") +def dashboard(): + total = sum(e["amount"] for e in expenses) + categories = ", ".join(e["category"] for e in expenses) + return render_template_string(""" +

Finance Dashboard

+

Total Spending: ${{ total }}

+

Categories: {{ categories }}

+ """, total=total, categories=categories) + +if __name__ == "__main__": + app.run(debug=True) diff --git a/finance_dashboard/requirements.txt b/finance_dashboard/requirements.txt index e69de29..685627a 100644 --- a/finance_dashboard/requirements.txt +++ b/finance_dashboard/requirements.txt @@ -0,0 +1,2 @@ +flask +matplotlib From d10914fa77308306c05b6f6039acd574843f8bdf Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 19:35:10 -0500 Subject: [PATCH 03/18] added sample.txt file for my word frequency code as well as a README --- word_frequency/README.md | 0 word_frequency/counter_sample.txt | 0 word_frequency/word_frequency_counter.py | 11 +++++++++++ 3 files changed, 11 insertions(+) create mode 100644 word_frequency/README.md create mode 100644 word_frequency/counter_sample.txt create mode 100644 word_frequency/word_frequency_counter.py diff --git a/word_frequency/README.md b/word_frequency/README.md new file mode 100644 index 0000000..e69de29 diff --git a/word_frequency/counter_sample.txt b/word_frequency/counter_sample.txt new file mode 100644 index 0000000..e69de29 diff --git a/word_frequency/word_frequency_counter.py b/word_frequency/word_frequency_counter.py new file mode 100644 index 0000000..7d11f54 --- /dev/null +++ b/word_frequency/word_frequency_counter.py @@ -0,0 +1,11 @@ +from collections import Counter + +def count_words(filename): + with open(filename, "r", encoding="utf-8") as f: + text = f.read().lower().split() + word_counts = Counter(text) + for word, count in word_counts.most_common(10): + print(f"{word}: {count}") + +if __name__ == "__main__": + count_words("counter_sample.txt") From ba0ad8ee11f83c0b6fbed794b5ae934739aebd0b Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 19:49:35 -0500 Subject: [PATCH 04/18] tkinter gui for student management --- student_management/app.py | 153 ++++++++++++++++++++++++++++++++ student_management/students.csv | 0 2 files changed, 153 insertions(+) create mode 100644 student_management/app.py create mode 100644 student_management/students.csv diff --git a/student_management/app.py b/student_management/app.py new file mode 100644 index 0000000..a49b107 --- /dev/null +++ b/student_management/app.py @@ -0,0 +1,153 @@ +import tkinter as tk +from tkinter import messagebox, simpledialog +import pandas as pd +import os + +# ============================== +# Hardcoded admin credentials +# ============================== +USERNAME = "admin" +PASSWORD = "password123" + +# File to store student data +DATA_FILE = "students.csv" + +# Ensure CSV exists +if not os.path.exists(DATA_FILE): + df = pd.DataFrame(columns=["Roll No", "Name", "Address", "DOB"]) + df.to_csv(DATA_FILE, index=False) + +# ============================== +# Helper functions +# ============================== +def get_students(): + return pd.read_csv(DATA_FILE) + +def save_students(df): + df.to_csv(DATA_FILE, index=False) + +def generate_roll_no(): + df = get_students() + if df.empty: + return 1 + else: + return df["Roll No"].max() + 1 + +# ============================== +# Student operations +# ============================== +def add_student(): + name = simpledialog.askstring("Input", "Enter student name:") + address = simpledialog.askstring("Input", "Enter student address:") + dob = simpledialog.askstring("Input", "Enter student DOB (YYYY-MM-DD):") + + if name and address and dob: + roll_no = generate_roll_no() + df = get_students() + df.loc[len(df)] = [roll_no, name, address, dob] + save_students(df) + messagebox.showinfo("Success", f"Student {name} added with Roll No {roll_no}") + else: + messagebox.showwarning("Input Error", "All fields are required!") + +def update_student(): + roll_no = simpledialog.askinteger("Input", "Enter roll number to update:") + df = get_students() + + if roll_no in df["Roll No"].values: + name = simpledialog.askstring("Input", "Enter new name (leave blank to keep same):") + address = simpledialog.askstring("Input", "Enter new address (leave blank to keep same):") + dob = simpledialog.askstring("Input", "Enter new DOB (leave blank to keep same):") + + idx = df.index[df["Roll No"] == roll_no][0] + + if name: + df.at[idx, "Name"] = name + if address: + df.at[idx, "Address"] = address + if dob: + df.at[idx, "DOB"] = dob + + save_students(df) + messagebox.showinfo("Success", f"Student with Roll No {roll_no} updated!") + else: + messagebox.showerror("Error", "Roll number not found!") + +def delete_student(): + roll_no = simpledialog.askinteger("Input", "Enter roll number to delete:") + df = get_students() + + if roll_no in df["Roll No"].values: + df = df[df["Roll No"] != roll_no] + save_students(df) + messagebox.showinfo("Deleted", f"Student with Roll No {roll_no} deleted!") + else: + messagebox.showerror("Error", "Roll number not found!") + +def search_student(): + choice = simpledialog.askstring("Search", "Search by 'roll' or 'name'?").lower() + df = get_students() + + if choice == "roll": + roll_no = simpledialog.askinteger("Input", "Enter roll number:") + result = df[df["Roll No"] == roll_no] + elif choice == "name": + name = simpledialog.askstring("Input", "Enter name:") + result = df[df["Name"].str.contains(name, case=False, na=False)] + else: + messagebox.showerror("Error", "Invalid choice!") + return + + if not result.empty: + messagebox.showinfo("Result", result.to_string(index=False)) + else: + messagebox.showinfo("Result", "No matching student found.") + +# ============================== +# Login + Dashboard +# ============================== +def login(): + entered_username = username_entry.get() + entered_password = password_entry.get() + + if entered_username == USERNAME and entered_password == PASSWORD: + messagebox.showinfo("Login Success", "Welcome, Admin!") + root.destroy() + open_dashboard() + else: + messagebox.showerror("Login Failed", "Invalid username or password") + +def open_dashboard(): + dashboard = tk.Tk() + dashboard.title("Student Management System") + dashboard.geometry("400x400") + + tk.Label(dashboard, text="Student Management System", + font=("Arial", 14, "bold")).pack(pady=15) + + tk.Button(dashboard, text="Add Student", command=add_student, width=25).pack(pady=5) + tk.Button(dashboard, text="Update Student", command=update_student, width=25).pack(pady=5) + tk.Button(dashboard, text="Delete Student", command=delete_student, width=25).pack(pady=5) + tk.Button(dashboard, text="Search Student", command=search_student, width=25).pack(pady=5) + tk.Button(dashboard, text="Exit", command=dashboard.quit, width=25).pack(pady=10) + + dashboard.mainloop() + +# ============================== +# Main Login Window +# ============================== +root = tk.Tk() +root.title("Admin Login") +root.geometry("300x200") + +tk.Label(root, text="Username:").pack(pady=5) +username_entry = tk.Entry(root) +username_entry.pack(pady=5) + +tk.Label(root, text="Password:").pack(pady=5) +password_entry = tk.Entry(root, show="*") +password_entry.pack(pady=5) + +tk.Button(root, text="Login", command=login).pack(pady=20) + +root.mainloop() diff --git a/student_management/students.csv b/student_management/students.csv new file mode 100644 index 0000000..e69de29 From 0bfc5d34b34e8d02499b4b33886e4ca3a2c732aa Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 19:56:27 -0500 Subject: [PATCH 05/18] edited students.csv file --- student_management/students.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/student_management/students.csv b/student_management/students.csv index e69de29..5859a58 100644 --- a/student_management/students.csv +++ b/student_management/students.csv @@ -0,0 +1 @@ +Roll No,Name,Address,DOB From 4936aaba65cb4fdd785ff2b0c01f839051628c07 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 20:46:28 -0500 Subject: [PATCH 06/18] added basic tkinter app skeleton --- todo_list/todo.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 todo_list/todo.py diff --git a/todo_list/todo.py b/todo_list/todo.py new file mode 100644 index 0000000..e69de29 From 357308d4f24278bbbc550ed61dd4793da2c00da7 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 20:49:23 -0500 Subject: [PATCH 07/18] added placeholder functions and buttons for tasks --- todo_list/todo.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/todo_list/todo.py b/todo_list/todo.py index e69de29..8ed1cfc 100644 --- a/todo_list/todo.py +++ b/todo_list/todo.py @@ -0,0 +1,40 @@ +# todo_app.py +""" +A simple To-Do List app skeleton using Tkinter. +Google Calendar API integration will be added later. +""" +import tkinter as tk + +def main(): + root = tk.Tk() + root.title("To-Do List") + root.geometry("400x400") + label = tk.Label(root, text="To-Do List App Skeleton") + label.pack(pady=20) + root.mainloop() + +if __name__ == "__main__": + main() + + +tasks = [] +def add_task(task): + tasks.append(task) + print(f"Task added: {task}") + + def remove_task(task): + if task in tasks: + tasks.remove(task) + print(f"Task removed: {task}") + else: + print(f"Task not found: {task}") + + print("Remove task function") + + add_button = tk.Button(root, text="Add Task", command=lambda: add_task("Sample Task")) + add_button.pack(pady=10) + remove_button = tk.Button(root, text="Remove Task", command=lambda: remove_task("Sample Task")) + remove_button.pack(pady=10) + print("Add task function") + + \ No newline at end of file From 8206ab91392f0cae7ff74934ab93bb36166b8e33 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 20:50:45 -0500 Subject: [PATCH 08/18] added a README for this issue --- todo_list/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 todo_list/README.md diff --git a/todo_list/README.md b/todo_list/README.md new file mode 100644 index 0000000..2cc69bf --- /dev/null +++ b/todo_list/README.md @@ -0,0 +1,6 @@ +# To-Do List Application + +This is a simple To-Do List app skeleton using Tkinter. +Planned features: +- Add and remove tasks +- Google Calendar API integration for syncing tasks From be99875b9271a204740f9a21ea75a71268e9f867 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 20:55:22 -0500 Subject: [PATCH 09/18] function for google calendar api sync --- todo_list/todo.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/todo_list/todo.py b/todo_list/todo.py index 8ed1cfc..aa9b1cf 100644 --- a/todo_list/todo.py +++ b/todo_list/todo.py @@ -3,6 +3,7 @@ A simple To-Do List app skeleton using Tkinter. Google Calendar API integration will be added later. """ +from logging import root import tkinter as tk def main(): @@ -37,4 +38,7 @@ def remove_task(task): remove_button.pack(pady=10) print("Add task function") - \ No newline at end of file + + def sync_with_google_calendar(): + # Placeholder function for Google Calendar API integration + print("Syncing with Google Calendar (placeholder)") From 95d04aa9a21d87122c7227015bc96e8216508e12 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:20:31 -0500 Subject: [PATCH 10/18] calendar app skeleton --- calendar_display/calendar_app.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 calendar_display/calendar_app.py diff --git a/calendar_display/calendar_app.py b/calendar_display/calendar_app.py new file mode 100644 index 0000000..3faccb2 --- /dev/null +++ b/calendar_display/calendar_app.py @@ -0,0 +1,24 @@ +import tkinter as tk +from tkinter import messagebox +import calendar + +def main(): + root = tk.Tk() + root.title("Calendar App") + root.geometry("300x150") + + tk.Label(root, text="Enter Year:").pack(pady=5) + year_entry = tk.Entry(root) + year_entry.pack(pady=5) + + def show_calendar(): + # Placeholder function for showing calendar + print("Show calendar function placeholder") + + tk.Button(root, text="Show Calendar", command=show_calendar).pack(pady=5) + tk.Button(root, text="Exit", command=root.destroy).pack(pady=5) + + root.mainloop() + +if __name__ == "__main__": + main() \ No newline at end of file From f4da83feb1a105eb6c73a7a15e22d25ea548bc5c Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:26:28 -0500 Subject: [PATCH 11/18] calendar display function --- calendar_display/calendar_app.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/calendar_display/calendar_app.py b/calendar_display/calendar_app.py index 3faccb2..9836d19 100644 --- a/calendar_display/calendar_app.py +++ b/calendar_display/calendar_app.py @@ -12,13 +12,24 @@ def main(): year_entry.pack(pady=5) def show_calendar(): - # Placeholder function for showing calendar - print("Show calendar function placeholder") + year = year_entry.get() + if not year.isdigit(): + messagebox.showerror("Invalid Input", "Please enter a valid year") + return + display_calendar(year) tk.Button(root, text="Show Calendar", command=show_calendar).pack(pady=5) tk.Button(root, text="Exit", command=root.destroy).pack(pady=5) root.mainloop() -if __name__ == "__main__": - main() \ No newline at end of file +def display_calendar(year): + try: + year = int(year) + if year < 1: + raise ValueError + cal = calendar.TextCalendar() + cal_str = cal.formatyear(year) + messagebox.showinfo(f"Calendar for {year}", cal_str) + except ValueError: + messagebox.showerror("Invalid Input", "Please enter a valid positive year") From f44458bd4e547adcfe534e3705125de48ee1be17 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:28:59 -0500 Subject: [PATCH 12/18] error handling --- calendar_display/calendar_app.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/calendar_display/calendar_app.py b/calendar_display/calendar_app.py index 9836d19..45907a7 100644 --- a/calendar_display/calendar_app.py +++ b/calendar_display/calendar_app.py @@ -33,3 +33,17 @@ def display_calendar(year): messagebox.showinfo(f"Calendar for {year}", cal_str) except ValueError: messagebox.showerror("Invalid Input", "Please enter a valid positive year") + + +def show_calendar(year): + try: + year = int(year) + if year < 1: + raise ValueError + cal = calendar.TextCalendar() + cal_str = cal.formatyear(year) + messagebox.showinfo(f"Calendar for {year}", cal_str) + except ValueError: + messagebox.showerror("Invalid Input", "Please enter a valid positive year") + + display_calendar(year) \ No newline at end of file From 1e7cb72ea8722475649ba8bdd2561c43c3ab5a62 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:30:49 -0500 Subject: [PATCH 13/18] added README --- calendar_display/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 calendar_display/README.md diff --git a/calendar_display/README.md b/calendar_display/README.md new file mode 100644 index 0000000..f177023 --- /dev/null +++ b/calendar_display/README.md @@ -0,0 +1,18 @@ +# Calendar App + +Simple GUI calendar application built with Python and Tkinter + +## Features + +- User-friendly interface +- Displays full year calendar (placeholder) +- Easy year input +- Exit button + +## How to Use + +1. Run the application: `python calendar_app.py` +2. Enter a year in the input field +3. Click "Show Calendar" button +4. A new window opens displaying the calendar (placeholder) +5. Click "Exit" to close the application \ No newline at end of file From c7bb726b7497cda456db9d8e440463d5f21d228c Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:52:32 -0500 Subject: [PATCH 14/18] added tkinter habit tracker skeleton --- mood_tracker/simple_calendar.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 mood_tracker/simple_calendar.py diff --git a/mood_tracker/simple_calendar.py b/mood_tracker/simple_calendar.py new file mode 100644 index 0000000..e84dd76 --- /dev/null +++ b/mood_tracker/simple_calendar.py @@ -0,0 +1,28 @@ +import tkinter as tk +from tkinter import messagebox + +def main(): + root = tk.Tk() + root.title("Habit Tracker") + root.geometry("400x300") + + tk.Label(root, text="Habit Tracker App").pack(pady=10) + + tk.Label(root, text="Enter Habit:").pack(pady=5) + habit_entry = tk.Entry(root) + habit_entry.pack(pady=5) + + def add_habit(): + habit = habit_entry.get() + if habit == "": + messagebox.showerror("Error", "Please enter a habit") + else: + print(f"Added habit: {habit} (placeholder)") + + tk.Button(root, text="Add Habit", command=add_habit).pack(pady=5) + tk.Button(root, text="Exit", command=root.destroy).pack(pady=5) + + root.mainloop() + +if __name__ == "__main__": + main() \ No newline at end of file From 699e515711b9035269c6911b635c79102523f524 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:54:12 -0500 Subject: [PATCH 15/18] function for displaying habit streaks --- mood_tracker/simple_calendar.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mood_tracker/simple_calendar.py b/mood_tracker/simple_calendar.py index e84dd76..6d19bb9 100644 --- a/mood_tracker/simple_calendar.py +++ b/mood_tracker/simple_calendar.py @@ -25,4 +25,8 @@ def add_habit(): root.mainloop() if __name__ == "__main__": - main() \ No newline at end of file + main() + + # habit_tracker.py (continued) +def show_streaks(): + print("Showing habit streaks (placeholder)") From 76640e922a4f3e385d93604a9f6585008335646d Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 22:55:20 -0500 Subject: [PATCH 16/18] added README for this issue --- mood_tracker/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 mood_tracker/README.md diff --git a/mood_tracker/README.md b/mood_tracker/README.md new file mode 100644 index 0000000..c713489 --- /dev/null +++ b/mood_tracker/README.md @@ -0,0 +1,16 @@ +# Habit Tracker App + +A simple Habit Tracker application using Python and Tkinter. + +## Features +- Add and track habits (placeholder) +- Habit streaks (placeholder) +- Analyze progress (placeholder) +- Exit button + +## How to Use +1. Run `python habit_tracker.py` +2. Enter a habit in the input box +3. Click "Add Habit" +4. Use placeholder functions for streaks and analysis +5. Click "Exit" to close the app From 7cf58ad2e4010fb7748f14dba4efb5f66103b1d7 Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 23:17:06 -0500 Subject: [PATCH 17/18] added basic skeleton for music recommender --- music_rec/music_recommender.py | 13 +++++++++++++ word_frequency/README.md | 13 +++++++++++++ word_frequency/counter_sample.txt | 4 ++++ 3 files changed, 30 insertions(+) create mode 100644 music_rec/music_recommender.py diff --git a/music_rec/music_recommender.py b/music_rec/music_recommender.py new file mode 100644 index 0000000..ecca410 --- /dev/null +++ b/music_rec/music_recommender.py @@ -0,0 +1,13 @@ +# music_recommender.py +""" +Simple Music Recommender skeleton using Spotify API +Recommends songs based on user-inputted emotions (placeholder). +""" + +def main(): + print("Welcome to the Music Recommender App") + emotion = input("Enter your current emotion: ") + print(f"Fetching playlist for emotion: {emotion} (placeholder)") + +if __name__ == "__main__": + main() diff --git a/word_frequency/README.md b/word_frequency/README.md index e69de29..8d3bb6b 100644 --- a/word_frequency/README.md +++ b/word_frequency/README.md @@ -0,0 +1,13 @@ +# Word Frequency Counter + +This project is a simple Python script that counts the frequency of words in a text file and prints the **top 10 most frequent words** along with their counts. + +## How It Works +1. The script reads the contents of a text file. +2. It splits the text into words and counts how many times each word appears. +3. The top 10 most frequent words are displayed in the terminal. + +## How to Run +1. Open a terminal and navigate into this folder: + ```bash + cd word_frequency_counter diff --git a/word_frequency/counter_sample.txt b/word_frequency/counter_sample.txt index e69de29..a4ca6b6 100644 --- a/word_frequency/counter_sample.txt +++ b/word_frequency/counter_sample.txt @@ -0,0 +1,4 @@ +Learning Python is fun and powerful. Python makes it easy to build projects, solve problems, and explore new ideas. +The more you practice Python, the better you get at writing clean and effective code. +Programming with Python can open doors to data science, web development, automation, and much more. +Keep practicing, keep building, and enjoy the journey of learning Python! From d8af1321d70d3d7d18323250f7a9bb58292f282c Mon Sep 17 00:00:00 2001 From: Chloe White Date: Sun, 21 Sep 2025 23:20:53 -0500 Subject: [PATCH 18/18] added a function for connecting to spotify api --- music_rec/music_recommender.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/music_rec/music_recommender.py b/music_rec/music_recommender.py index ecca410..3b48246 100644 --- a/music_rec/music_recommender.py +++ b/music_rec/music_recommender.py @@ -11,3 +11,7 @@ def main(): if __name__ == "__main__": main() + +# music_recommender.py (continued) +def connect_to_spotify(): + print("Connecting to Spotify API (placeholder)")