Skip to content

0rajnishk/Music-Player-MAD-I

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MAD I project IITM BS Degree

App dev I project (MUSIC STREAMING WEB APP)

Screenshots

Alt text

Alt text

Alt text

Alt text

Alt text

Alt text

Alt text

Project Overview

Welcome to the ChillWave project, an exciting music streaming website developed to provide users with an immersive and enjoyable audio experience. ChillWave serves as a platform where music enthusiasts can discover, listen to, and curate their favorite songs and playlists.

Project Goals

The primary goals of ChillWave are to:

  • Develop a user-friendly and aesthetically pleasing music streaming website.
  • Implement user profiles, including general user profiles and creator profiles for music artists.
  • Enable song management features, allowing users to add, edit, and organize their music.
  • Provide playlist management capabilities for creating and curating playlists.
  • Implement a robust search functionality for songs and playlists.
  • Support the addition and playback of .mp3 audio files.
  • Create APIs to interact with albums, songs, and playlists.
  • Implement CRUD (Create, Read, Update, Delete) operations for songs and playlists.
  • Develop additional APIs for generating graphs and statistics for the admin dashboard.
  • Implement robust validation for all form inputs, ensuring data integrity.
  • Enhance the styling and aesthetics of the website to offer an enjoyable visual experience.
  • Establish a secure login system for user accounts and authentication.
  • Explore subscription or paid versions of the application for premium features.
  • Include features like autoplay and shuffle songs in a playlist to enhance the user experience.

Technology Stack

ChillWave is developed using the following technologies and tools:

  • Flask: A Python web framework that provides the foundation for building web applications.
  • SQLite: A lightweight and efficient relational database system, ideal for managing music data.
  • HTML: The standard markup language for structuring web content.
  • CSS: Cascading Style Sheets for designing and styling web pages.
  • JavaScript: A versatile scripting language used to add interactivity and dynamic features to the website.

How to run webapp localy

create virtual env

python3 -m venv env

activate virtual env

source env\bin\activate

install dependencies

pip install -r requirements.txt

finally run and enjoy the webapp

python3 main.py

Having issue running this on windows

switch to Linux 

Project Structure

your_project/
    ├── app/
    |   ├── __init__.py
    |   ├── admin/
    |   |   ├── __init__.py
    |   |   ├── routes.py
    |   |   ├── templates/
    |   |   |   ├── admin_dashboard.html
    |   |   |   └── ...
    |   ├── auth/
    |   |   ├── __init__.py
    |   |   ├── routes.py
    |   |   ├── templates/
    |   |   |   ├── login.html
    |   |   |   ├── register.html
    |   |   |   └── ...
    |   ├── main/
    |   |   ├── __init__.py
    |   |   ├── routes.py
    |   |   ├── templates/
    |   |   |   ├── index.html
    |   |   |   ├── playlist.html
    |   |   |   └── ...
    |   ├── static/
    |   |   ├── css/
    |   |   |   ├── styles.css
    |   |   |   └── ...
    |   |   ├── js/
    |   |   |   ├── main.js
    |   |   |   └── ...
    |   ├── templates/
    |   |   ├── base.html
    |   |   ├── layout.html
    |   |   └── ...
    ├── instance/
    |   ├── config.py
    ├── migrations/
    ├── tests/
    ├── venv/
    ├── config.py
    ├── run.py

Development Steps

The development of the ChillWave project will progress through several key steps to ensure a systematic and organized approach to creating the music streaming website. Below is an overview of the development process:

  1. Setting up the Project Directory Structure: Organize the project directory with well-defined folders for different components, such as 'app,' 'static,' 'templates,' 'migrations,' and 'tests.'

  2. Creating the Flask Application and Configuring It: Initialize a Flask application, and configure it with settings, such as secret keys and database connections, using a configuration file.

  3. Defining Routes and Views for Different Parts of the Application: Create routes and views to handle user requests and serve appropriate responses.

  4. Implementing Database Models and Migrations: Design and define database models to represent songs, playlists, users, and other relevant data. Implement database migrations to manage database schema changes.

  5. Developing User Authentication and Registration: Create user authentication and registration functionality to allow users to create accounts, log in, and manage their profiles.

  6. Creating the Frontend Templates using HTML and CSS: Design HTML templates to provide the structure of web pages. Style the templates using CSS to enhance the user interface.

  7. Implementing Song Management and Playlist Features: Develop features for users to add, edit, and delete songs. Enable users to create, modify, and organize playlists.

  8. Developing the Admin Dashboard: Create an admin dashboard with features like data analytics and user management.

  9. Adding API Endpoints for Albums and Songs: Implement APIs to allow external interaction with albums and songs, facilitating data retrieval and management.

  10. Implementing Validation and Error Handling: Apply robust validation checks for user inputs to ensure data integrity. Implement error handling to provide informative feedback to users when issues arise.

  11. Styling and Refining the User Interface: Enhance the visual appeal of the website through CSS enhancements. Refine the user interface to optimize user experience.

  12. Adding Subscription and Paid Features: Explore subscription or premium features, such as ad-free listening or offline downloads, to offer value-added options to users.

  13. Testing the Application: Conduct thorough testing, including unit tests, integration tests, and user testing, to identify and fix issues.

  14. Deploying the Application to a Hosting Platform: Choose a suitable hosting platform, such as AWS, Heroku, or a dedicated server. Deploy the ChillWave application to make it accessible to users.

Conclusion

ChillWave is poised to become a cutting-edge music streaming platform, offering a seamless and enjoyable user experience. With a robust technology stack and a clear development roadmap, we aim to create a platform that music enthusiasts will love.

Document Author

Rajnish Kumar

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published