Moseeqify
A comprehensive music streaming service project, featuring MS SQL Server, Flask API, and React.js frontend. Developed for the 4th semester Database Systems course at Lahore Garrison University.
Install / Use
/learn @Musxeto/MoseeqifyREADME
Moseeqify: Music Streaming Service
Moseeqify is a music streaming application developed to showcase the principles of database design and management using a three-tier architecture. The project involves the development of a relational database in Microsoft SQL Server, a backend API using Flask, and a React.js frontend to provide a comprehensive full-stack solution with CRUD operations.
This project is created for the 4th semester Database Systems course at Lahore Garrison University.
Complete Documentation: Moseeqify docs.pdf
Table of Contents
- Introduction
- Screenshots
- Architecture
- Technologies Used
- Database Design
- Backend API
- Frontend Design
- Setup and Installation
- Usage
- Contributors
Introduction
Moseeqify allows users to access a library of songs, create personalized playlists, and enjoy an amazing user interface. The focus is on the database and backend development to ensure a scalable foundation for the application.
Screenshots:
Architecture
Moseeqify uses a three-tier architecture for modularity and scalability:
- Data Layer (Database): Microsoft SQL Server stores all application data using a well-defined schema.
- Business Logic Layer (Backend API): Flask handles user requests and interactions, connecting to the database.
- Presentation Layer (React JS Frontend): Provides a user-friendly interface for browsing music, managing playlists, and controlling music playback.
Technologies Used
Database:
- Microsoft SQL Server: For storing and managing all application data.
Backend:
- Flask: Micro web framework for Python for the backend API.
- SQLAlchemy: ORM for interacting with the database.
- Flask-Login: Library for user session management.
- Flask-CORS: Library for Cross Origin Resource Sharing.
Frontend:
- React JS: JavaScript frontend library for building user interfaces.
Development Tools:
- Git/GitHub: Version control system for team collaboration.
Database Design
The database uses relational tables to store and manage music data, user information, and their interactions with the application. Key tables include:
- User Table
- Artist Table
- Genre Table
- Album Table
- Song Table
- Playlist Table
- UserListeningHistory Table
- user_follows_artists Table
Constraints and Data Integrity:
- Primary Key Constraints
- Foreign Key Constraints
- Not Null Constraints
- Unique Constraints
- Check Constraints
Stored Procedures: CRUD operations are managed using stored procedures, ensuring efficient data management.
Backend API
The backend API is built using Flask and includes various routes for managing users, playlists, songs, and more. Key API routes include:
- User Registration:
/register- POST - User Login:
/login- POST - User Logout:
/logout- GET - Create Playlist:
/playlists- POST - Add Song to Playlist:
/playlists/<playlist_id>/add-song/<song_id>- POST - Get Specific Album:
/albums/<album_id>/- GET - Get All Songs:
/songs- GET - Get All Albums:
/albums- GET - Manage Playlists:
/playlists- GET - Search Songs:
/search- POST - Follow Artist:
/follow-artist/<artist_id>- POST - Unfollow Artist:
/unfollow-artist/<artist_id>- POST - Fetch User Listening History:
/users/<username>/listening-history- GET
Frontend Design
The frontend, built with React JS, includes various components such as:
- Login/Signup: User authentication forms.
- Home: Displays welcome message and user listening history.
- Album: Detailed information about albums.
- Song: Details about songs and audio controls.
- Playlist: Create and manage playlists.
- Search: Search functionality for songs.
- Player: Music player component.
- Navigation Bar: Links to different sections of the application.
Setup and Installation
Prerequisites
- Python 3.x
- Node.js
- Microsoft SQL Server
Backend Setup
- Clone the repository:
git clone https://github.com/your-username/moseeqify.git cd moseeqify/backend - Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` - Install the dependencies:
pip install -r requirements.txt - Run the Flask server:
flask run
Frontend Setup
- Navigate to the frontend directory:
cd ../frontend - Install the dependencies:
npm install - Run the React development server:
npm start
Usage
- Open your browser and navigate to
http://localhost:3000. - Register a new user or log in with existing credentials.
- Explore the music library, create playlists, and enjoy streaming music.
Contributors
- Ghulam Mustafa Fa-2022/BSCS/188
- Ammad Rasheed Fa-2022/BSCS/199
- Faizan Ali Fa-2022/BSCS/187
- Ahsan Ilahi Fa-2022/BSCS/210
Note:
This is a 4th semester Project developed for the Database Systems Course.
Related Skills
feishu-drive
349.9k|
things-mac
349.9kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
349.9kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
postkit
PostgreSQL-native identity, configuration, metering, and job queues. SQL functions that work with any language or driver
