Skip to content
This repository has been archived by the owner on Aug 13, 2024. It is now read-only.

Latest commit

 

History

History
83 lines (64 loc) · 4.6 KB

README.md

File metadata and controls

83 lines (64 loc) · 4.6 KB

Melody Mingle

Introduction

Welcome to Melody Mingle (working title, will change), an innovative music discovery game that brings people together through the universal language of music. This project is designed as a web-based application where users can participate in a unique social experience, sharing and discovering music in a fun and interactive way.

About the Game

Melody Mingle is not just a game; it's a journey through soundscapes, personal stories, and cultural exploration. The game allows players to respond to music-themed prompts with song choices, creating a shared playlist in each session. As players contribute their selections, everyone gets a chance to listen, discuss, and learn about different musical tastes and the stories behind them. It's an adventure in music, emotions, and connections.

Key Features

  • Group Play: Designed for playing in groups, making it perfect for social gatherings, online meetups, or just for making new friends.
  • Music Prompts: Each round features a thought-provoking prompt that encourages players to choose songs that hold special meaning, tell a story, or set a particular mood.
  • Discovery and Sharing: A platform to discover new music and insights into your friends' musical tastes.
  • Non-Competitive Experience: Focused on sharing and enjoyment rather than competition. There are no winners or losers, only explorers on a musical quest.
  • Integration with Music Services: Seamlessly integrates with popular music streaming services for a vast selection of songs.

Technology Stack

  • Frontend: Angular with TypeScript, styled using Bootstrap for a responsive and user-friendly interface.
  • Backend: Flask (Python), providing a robust and scalable server-side solution.
  • Database: SQL with SQLAlchemy, managing game data efficiently and securely.
  • Deployment: AWS, ensuring reliable and scalable hosting.

Getting Started

Project Structure

Root Directory

  • README.md - Project documentation.
  • .gitignore - To specify untracked files to ignore.
  • frontend/ - Contains all Angular frontend code.
  • backend/ - Contains all Flask backend code.

Frontend (Angular)

  • frontend/
    • src/ - Source files for the Angular application.
      • app/ - Angular components, services, and models.
        • components/ - UI components (e.g., header, footer).
        • services/ - Angular services (e.g., API communication).
        • models/ - TypeScript models or interfaces.
      • assets/ - Static assets like images, fonts, etc.
      • environments/ - Environment-specific configuration settings.
      • index.html - Root HTML file.
      • main.ts - Main entry point for the application.
      • polyfills.ts - Polyfills needed by Angular.
      • styles.scss - Global styles (using SCSS).
    • angular.json - Angular CLI configuration.
    • package.json - NPM package dependencies and scripts.
    • tsconfig.json - TypeScript compiler configuration.
    • webpack.config.js - Webpack configuration (if custom configuration is needed).

Backend (Flask)

  • backend/
    • app/ - Flask application.
      • __init__.py - Initializes the Flask application.
      • routes.py - Defines the routes/endpoints.
      • models.py - SQLAlchemy models.
    • config.py - Configuration settings for Flask.
    • requirements.txt - Python dependencies.
    • run.py - Entry point to start the Flask application.
    • migrations/ - Database migration scripts (if using Flask-Migrate).

Database

  • For SQL and SQLAlchemy, database schema will be defined in backend/app/models.py.

Deployment and CI/CD

  • .github/ - GitHub Actions workflows for CI/CD (if using GitHub Actions).
  • Dockerfile - (Optional) For containerizing the application.
  • Deployment scripts or configuration files for AWS (e.g., deploy.sh, AWS CloudFormation templates).

Additional Notes

  • Frontend: Angular projects are typically initialized with Angular CLI, which will set up the basic structure.
  • Backend: Flask allows flexibility in how you structure your project, but the above structure is a common pattern.
  • Bootstrap: Integrated in the Angular project, usually via npm and imported into the styles.
  • Webpack: Custom configurations can be added if needed, but Angular CLI's default build toolchain usually suffices.
  • SQLAlchemy: Used in the Flask app for ORM.
  • AWS Deployment: The specifics depend on the AWS services you choose (like EC2, Elastic Beanstalk, Lambda, etc.).

This structure provides a clear separation of frontend and backend code, which is beneficial for development, maintenance, and scaling of your application.# melody-mingle