Table of Contents
This Project is made by NandanReddy Parnapalli, for Modern Application Devlopment 1 course prject.
Main theme of this project is to make a Music streaming application, enabling its users to explore songs and albums uploaded by other users who became creators by registering, and creating playlists by adding those songs. For overall control over users, Admin role can flag content uploaded by creators or add them in blacklist and approve or reject premium requests made by users.
- HTML & CSS and some Java Script
- Flask, Flask is a micro web framework for Python that is designed to be lightweight, flexible, and easy to use.
- Flask Sqlalchemy, Flask-SQLAlchemy is an extension for Flask that simplifies the integration of SQLAlchemy, it is a Object-Relational Mapping (ORM) library. SQLAlchemy provides a powerful and flexible way to interact with databases using Python.
- Flask Migrate, Flask-Migrate is an extension that integrates the Alembic migration framework with Flask applications, providing a convenient way to handle database schema changes.
- Flask Restful, Flask-RESTful is an extension for Flask that adds support for quickly building REST APIs. It simplifies the process of creating web services by providing tools and abstractions to handle common tasks associated with RESTful APIs.
- Flask Login, Flask-Login is an extension for Flask that provides user session management, including user authentication. It simplifies the process of managing user logins and sessions in Flask applications.
- Bcrypt, Bcrypt is a Python library, used for implementing Bcrypt hashing the passwords before storing them in a database to enhance security.
- Mutagen, Mutagen is a Python library that provides a set of tools for working with audio files. In this project this is used to store song duration data.
Set the root folder such that it includes Musica folder, requirements.txt, run.py.
Create a virtual environment by running command 'python -m venv FOLDER_NAME_YOU_WANT'
Enable the environment you have created by running 'FOLDER_NAME_YOU_GIVEN/scripts/activate'
Python and packages in requirements.txt
After creating a virtual environment, run command 'pip install -r requirements.txt' and then all required packages will be installed.
After successful installnation, to run the project you need to run the run.py file. In the root folder terminal you can run the command 'python run.py' and then we can see flask will provide link to view the project.
With that link any new user will be redirected to signup page and there they can create account and explore the app.
The app has types of user roles:
- User : By registering for the first time anyone can get a user role, with user role users can explore songs, albums and can create playlists and add songs to it. They can also download songs but premium is required, for that they need to submit a form and the admin should accept it.
- Creator : After registering any user can become a creator by registering as a creator and get that role. With a creator role, users can upload songs, create albums and assign songs to it. If users do something which violates the rules, their uploaded or created content gets flagged and its visibility is removed for users or removed; or they can get blacklisted and further they can’t perform any creator actions.
- Admin : Admin can only be added in the backend, admin can login as normal users and they will be redirected to the admin page. With an admin role a user can flag content and remove its visibility in normal users, or they can directly blacklist a user to not do any creator task.
default admin credentials is email_id: 'admin@musica' and password is '12345678'
NandanReddy P - @Telegram - [email protected]
Project Link: https://github.com/nandanreddyp/MAD1Project
- Flask documentaion and its extension's documnetations help me to understand well and impliment basic structure and wire them for my main purpose.
- Stackoverflow for understanding errors and getting out of them.