Skip to content

Welcome to Sangit🎢, a seamless music streaming experience where you can explore, discover, and enjoy everything about music from everywhere! With a rich feature set, modern UI, and smooth integration with the backend, Sangit is your gateway to the world of music.

Notifications You must be signed in to change notification settings

VinayHajare/Sangit-Everything-Everywhere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sangit🎢 - Everything, Everywhere

Welcome to Sangit🎢, a seamless music streaming experience where you can explore, discover, and enjoy everything about music from everywhere! With a rich feature set, modern UI, and smooth integration with the backend, Sangit is your gateway to the world of music.


🌟 Features

🎡 Music Streaming

  • Browse, search, and play songs.
  • High-quality audio streaming with controls for play, pause, and stop.
  • Persistent global song player across the app.

πŸ“š Playlists

  • Create, edit, and delete playlists.
  • Add or remove songs to/from playlists.
  • View and manage playlists effortlessly.

πŸ” Discovery

  • Get personalized song recommendations.
  • Explore playback history and rediscover your favorite tracks.
  • Follow your favorite artists and never miss their updates.

πŸ‘€ Profile Management

  • View and update your profile (bio and profile picture).
  • Secure authentication and session management with JWT.

πŸ” Authentication

  • User registration and login.
  • Secured private routes for authenticated users.

πŸ› οΈ Tech Stack

  • Frontend: React, Tailwind CSS
  • State Management: Context API
  • HTTP Client: Axios
  • Routing: React Router DOM
  • Backend: Sangit Backend Repository (Spring Boot, MySQL)

πŸ“‚ Project Structure

sangit-frontend/
β”œβ”€β”€ public/                 # Public files like index.html
β”œβ”€β”€ src/                    # Source files
β”‚   β”œβ”€β”€ components/         # Reusable React components
β”‚   β”‚   β”œβ”€β”€ Auth/           # Login and Register components
β”‚   β”‚   β”œβ”€β”€ Profile/        # User Profile component
β”‚   β”‚   β”œβ”€β”€ Songs/          # Song-related components (Player, List, Search)
β”‚   β”‚   β”œβ”€β”€ Playlists/      # Playlist-related components
β”‚   β”‚   └── Discover/       # Discovery features (Recommended, Follow Artist)
β”‚   β”œβ”€β”€ context/           # Auth and Player Context providers
β”‚   β”œβ”€β”€ hooks/              # Custom hooks like useAuth
β”‚   β”œβ”€β”€ pages/              # Page components (Login, Dashboard, Profile, etc.)
β”‚   β”œβ”€β”€ routes/             # PrivateRoute for securing routes
β”‚   β”œβ”€β”€ utils/              # Utility functions (API handler, token manager)
β”‚   β”œβ”€β”€ App.js              # Main application component
β”‚   β”œβ”€β”€ index.css           # CSS containing tailwind CSS rules
β”‚   └── index.js            # Entry point for React
β”œβ”€β”€ package.json            # Project dependencies
β”œβ”€β”€ tailwind.config.js      # Tailwind CSS configuration
└── README.md               # Project documentation

πŸš€ Getting Started

1. Prerequisites

  • Node.js (v14 or higher) and npm installed.
  • Backend API up and running. Check the Sangit Backend Repository for setup instructions.

2. Installation

  1. Clone the repository:

    git clone https://github.com/VinayHajare/Sangit.git
    cd Sangit
  2. Install dependencies:

    npm install
  3. Configure the backend API base URL in /src/utils/api.js:

    import axios from "axios";
    
    const api = axios.create({
      baseURL: "http://localhost:8080/api", // Replace with your backend API URL
    });
    
    export default api;
  4. Start the development server:

    npm start
  5. Open the app in your browser:

    http://localhost:3000
    

🧭 Usage

1. Authentication

  • Access the login page at /.
  • Use the "Don't have an account?" link to register.
  • Enter valid credentials to log in.

2. Dashboard

  • Navigate to /dashboard for quick access to all features:
    • Songs
    • Playlists
    • Discovery
    • Profile

3. Songs

  • View songs at /songs.
  • Search for songs using filters (title, artist, album, genre).
  • Play songs directly, and control playback using the global song player.

4. Playlists

  • Create playlists at /playlists/create.
  • View playlists at /playlists.
  • Add or remove songs in /playlists/:playlistId.

5. Discovery

  • Get personalized recommendations at /discover.
  • View playback history at /history.
  • Follow/unfollow artists at /follow.

6. Profile

  • View and edit profile details (bio and profile picture) at /profile.

🌐 Deployment

  1. Build the app for production:

    npm run build
  2. Deploy the build/ folder to your hosting service (e.g., Netlify, Vercel, AWS).


πŸ§ͺ Testing

  1. Ensure the backend API is running and accessible.
  2. Run the frontend development server:
    npm start
  3. Test user flows:
    • Register and log in.
    • Navigate to the dashboard and explore playlists, discovery, and profile.
    • Verify the song player functionality on all pages.
    • Test API calls for each feature (e.g., adding songs to a playlist, following artists).

🀝 Contributing

  1. Fork the repository.
  2. Create a new branch for your feature:
    git checkout -b feature-name
  3. Commit your changes:
    git commit -m "Add feature-name"
  4. Push to the branch:
    git push origin feature-name
  5. Open a pull request.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.


πŸ“ž Contact

For questions or support, feel free to reach out:

Enjoy streaming with Sangit🎢!

About

Welcome to Sangit🎢, a seamless music streaming experience where you can explore, discover, and enjoy everything about music from everywhere! With a rich feature set, modern UI, and smooth integration with the backend, Sangit is your gateway to the world of music.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published