Skip to content

Syna is a social music web application where users can log in using their Spotify accounts and find their best matches based on shared music preferences. The app is designed to connect music enthusiasts and create a community centered around their love for music.

License

Notifications You must be signed in to change notification settings

Rexaintreal/Syna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

7 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Syna Logo

Syna

Syna is a social music web application where users can log in using their Spotify accounts and find their best matches based on shared music preferences. The app is designed to connect music enthusiasts and create a community centered around their love for music.

Python: 3.8+ Flask: 2.0+ Tailwind CSS: 3.0 SQLite: 3 License: AGPL-3.0

๐ŸŽต Project Vision

Syna connects people through their love of music. By analyzing your Spotify listening habits, the app uses a sophisticated cosine similarity algorithm to match you with users who share your musical taste. Whether you're looking to discover new music, find friends with similar tastes, or simply explore your own listening patterns, Syna creates a space where music becomes the universal language that brings people together.


โœจ Live Website

Syna is live and available for anyone to use! Connect with others through your music taste today.

  • Website: Syna
  • Hosting: PythonAnywhere

Note: We have submitted a request to Spotify on April 16, 2025, for a quota extension to support more users. Our application is currently in the first version, and we are actively working on improvements based on user feedback.


โœจ User Experience

Syna offers a seamless user experience with a clean, modern interface powered by Tailwind CSS:

Login Screen Dashboard Profile

Top Charts Settings User Matches


๐ŸŒŸ Features

  • Spotify Integration: Securely log in with your Spotify account to share your music preferences
  • Smart Matching Algorithm: Find your best matches using cosine similarity based on music preferences
  • Personalized User Profiles: View detailed profiles showing top artists and tracks
  • Top Charts: Explore your personal top tracks and artists based on your Spotify listening history
  • User Discovery: Browse profiles of other users with similar music taste
  • Clean, Responsive UI: Enjoy a beautiful interface built with Tailwind CSS that works on any device

๐Ÿ–ฅ๏ธ Technology Stack

  • Frontend: HTML with Tailwind CSS for a responsive, modern user interface
  • Backend: Flask to handle backend logic and API integration
  • Authentication: Spotify OAuth 2.0 for secure user authentication
  • Database: SQLite for efficient data storage and retrieval
  • Algorithm: Cosine Similarity for intelligent user matching based on music preferences
  • Design: Custom color palette and typography inspired by music platforms
  • Hosting: Deployed on PythonAnywhere for reliable access

๐Ÿ”„ User Flow

User Flow Diagram

  1. Connect: Log in with your Spotify account
  2. Analyze: Our algorithm analyzes your music preferences
  3. Match: Find users with similar music taste
  4. Explore: Discover new music through your matches
  5. Connect: Build relationships based on shared music interests

๐ŸŽจ Design Guidelines

Fonts

  • Primary Font: Montserrat for headings and titles
  • Secondary Font: Poppins for body text and UI elements

Color Palette

Color Name Hex Code RGB Values Usage
Bluish Accent #1d419d rgb(29, 65, 157) Primary brand color: buttons, icons, highlights
Dark Gray #212121 rgb(33, 33, 33) Backgrounds and dark UI elements
Black #121212 rgb(18, 18, 18) App background for dark theme
Medium Gray #535353 rgb(83, 83, 83) Secondary text or inactive elements
Light Gray #b3b3b3 rgb(179, 179, 179) Placeholder text or subtle UI details

๐Ÿš€ Getting Started

Prerequisites

  • Python 3.8 or higher
  • Spotify Developer Account
  • Git

Installation

  1. Clone the repository:

    git clone https://github.com/Rexaintreal/Syna.git
    cd Syna
  2. Set up a Python virtual environment:

    python -m venv env
    source env/bin/activate  # On Windows: env\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Set up environment variables:

    • Create a .env file in the root directory.
    • Add your Spotify API credentials:
      SPOTIFY_CLIENT_ID=your_client_id
      SPOTIFY_CLIENT_SECRET=your_client_secret
      SPOTIFY_REDIRECT_URI=http://localhost:5000/callback
      
  5. Run the application:

    python app.py
  6. Access the app at http://localhost:5000.


๐Ÿ“‚ Project Structure

Syna/
โ”œโ”€โ”€ static/
โ”‚   โ””โ”€โ”€ assets/
โ”‚       โ”œโ”€โ”€ screenshots/
โ”‚       โ”‚   โ””โ”€โ”€ [1-6].jpg
โ”‚       โ”œโ”€โ”€ User flow.jpg
โ”‚       โ””โ”€โ”€ logo.png
โ”‚
โ”œโ”€โ”€ templates/
โ”‚   โ”œโ”€โ”€ dashboard.html
โ”‚   โ”œโ”€โ”€ feedback.html
โ”‚   โ”œโ”€โ”€ login.html
โ”‚   โ”œโ”€โ”€ settings.html
โ”‚   โ”œโ”€โ”€ setup.html
โ”‚   โ””โ”€โ”€ top-charts.html
โ”‚
โ”œโ”€โ”€ utils/
โ”‚   โ””โ”€โ”€ [utility files]
โ”‚
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ app.py
โ”œโ”€โ”€ clean.py
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

โš ๏ธ Current Status

This is the first version of Syna, and we acknowledge there are opportunities for improvement. We are actively gathering user feedback to enhance the experience and fix any issues. A quota extension request has been submitted to Spotify on April 16, 2025, to support more users as we grow.


๐Ÿ”ฎ Future Plans

The future of Syna is exciting! Here's what's on the roadmap:

  • Music Recommendations: Personalized music recommendations based on your matches
  • Group Matches: Create music groups based on shared preferences
  • Live Events: Notifications about concerts and events featuring your favorite artists
  • Playlist Sharing: Share and collaborate on playlists with your matches
  • Enhanced Analytics: More detailed insights into your music preferences and listening habits
  • Performance Improvements: Optimizing the matching algorithm and user experience

๐Ÿค Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Please ensure your code follows the project's coding standards and includes appropriate tests.


๐Ÿ“œ License

This project is licensed under the AGPL-3.0 License.


๐Ÿ‘จโ€๐Ÿ’ป Author

Syna was created by Rexaintreal.

You can reach out at:


๐Ÿ’ก You may also like...

About

Syna is a social music web application where users can log in using their Spotify accounts and find their best matches based on shared music preferences. The app is designed to connect music enthusiasts and create a community centered around their love for music.

Resources

License

Stars

Watchers

Forks