Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kalabamssalu/addismusicapp
This repository contains the Addis Music website application, a comprehensive solution built with the MERN stack (MongoDB, Express.js, React.js, Node.js). It features a full-fledged backend API using Express.js and MongoDB for managing data and user interactions, coupled with a dynamic and responsive frontend developed with React.js.
https://github.com/kalabamssalu/addismusicapp
emotion-css expressjs mern-stack music nodejs reactjs styled-components
Last synced: about 1 month ago
JSON representation
This repository contains the Addis Music website application, a comprehensive solution built with the MERN stack (MongoDB, Express.js, React.js, Node.js). It features a full-fledged backend API using Express.js and MongoDB for managing data and user interactions, coupled with a dynamic and responsive frontend developed with React.js.
- Host: GitHub
- URL: https://github.com/kalabamssalu/addismusicapp
- Owner: KalabAmssalu
- Created: 2024-05-16T19:19:18.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-05-30T00:15:04.000Z (9 months ago)
- Last Synced: 2024-11-11T06:26:48.380Z (3 months ago)
- Topics: emotion-css, expressjs, mern-stack, music, nodejs, reactjs, styled-components
- Language: TypeScript
- Homepage:
- Size: 6.11 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Addis Music Application
**Task breakdown for the Addis Software Test Project - MERN Stack**
## Project Objective
Creating a music website application using MERN stack.# Tasks Progress
### 1. Make a folder **"AdissMusicApp"**
mkdir AdissMusicApp### 2. Create a github repository **"addisMusicApp"**
- On GitHub create a new repository named "addisMusicApp".
### 3. Create a frontendnpm create-react-app frontend --template typescript
### 4. Create a backend
npm init -y
### 5. Install required packages
----
### Frontend Package**- Install emotion Styled System**
npm i @emotion/styled @emotion/react @emotion/core
**- Install Redux Toolkit**
npm install @reduxjs/toolkit
npm install react-redux
**- Install Redux-Saga**npm install redux-saga
**- Install Styled system**npm i styled-system styled-components @types/styled-components
**- Install React-Router-Dom**npm install react-router-dom
---### Backend Package
**- Install Mongoose, express, cors**
npm intall mongoose express cors
**- Install Nodemon**npm install nodemon
**- Install dotenv**npm install dotenv
**- Install cookie parser**npm install cookie-parser
---# Backend Development
### 6. Define Song Model, Controller, routes
Define MongoDB schema for songs Include fields:
- Title
- Artist
- Album
- Genre### 7. Define User Model, Controller, routes
Define MongoDB schema for User Include fields:
- name
- password
### 8. Develop REST API Endpoints- Create endpoint to create a new song
- Create endpoint to list all songs
- Create endpoint to update a song
- Create endpoint to delete a song
- Create endpoint to create a new user
- *---Create endpoint to list all users*
- Create endpoint to update a user
- Create endpoint to delete a user### 7. Authentication setup
- Create Authentication
- Create a middleware
### 9. Implement Statistics Endpoints
- Create endpoint to calculate and return overall statistics
- Include statistics such as total songs, artists, albums, genres, songs per genre, etc.
### 10. Test API Endpoints- Write unit tests for each endpoint using testing frameworks like Jest
- Test API functionality using Thunder Client
### 11. Dockerize Backend- Create Dockerfile for backend
- Docker-compose for MongoDB and backend
---
---
---
---
---
---# Frontend Development
### Set Up React App
- Initialize React project with Typescript
- Install required packages (Redux Toolkit, Redux-Saga, Emotion, Styled System)### Create Song Listing Page
- Design UI for displaying list of songs
- Fetch songs from backend API and display them
- Implement functionality to add, update, and delete songs
- Update UI dynamically when songs are added, updated, or deleted without page reload### Implement Statistics Section
- Design UI to display overall statistics
- Fetch statistics data from backend API and display them### Add Filtering Functionality
- Implement filtering functionality, such as filter by genre
- Update song list based on applied filters### Integration with Backend
- Integrate frontend with backend REST API endpoints
- Test integration and ensure proper data flow between frontend and backend### Testing and Debugging
- Write unit tests for components and Redux logic
- Test UI functionality and behavior
- Debug and fix any issues### Deploy Frontend
- Host frontend application on platforms like Netlify or Vercel
### Bonus Tasks
- Implement additional features like user
- authentication,
- search functionality, etc.
- Deploy backend using platforms like Heroku or Render