An open API service indexing awesome lists of open source software.

https://github.com/mmaffi/musicgallery-fullstack-postgresql


https://github.com/mmaffi/musicgallery-fullstack-postgresql

Last synced: 11 months ago
JSON representation

Awesome Lists containing this project

README

          

# ๐ŸŽต Music Gallery Fullstack

> An interactive gallery of music videos, focused on high-quality covers, built with a modern fullstack architecture.

[![GitHub License](https://img.shields.io/github/license/MMaffi/musicgallery-fullstack?style=flat-square)](LICENSE)
[![React](https://img.shields.io/badge/Frontend-React-61DAFB?logo=react&logoColor=fff&style=flat-square)](https://reactjs.org/)
[![Node.js](https://img.shields.io/badge/Backend-Node.js-339933?logo=node.js&logoColor=fff&style=flat-square)](https://nodejs.org/)
[![PostgreSQL](https://img.shields.io/badge/Database-postgreSQL-4479A1?logo=postgreSQL&logoColor=fff&style=flat-square)](https://www.mysql.com/)

---

## ๐Ÿ“ธ Overview

**Music Gallery Fullstack** is the advanced version of the static website [Music Gallery](https://mmaffi.github.io/MusicGallery), now with complete features such as:

- User authentication and login
- Personalized settings persisted in the database
- Light/dark theme with per-user preferences
- Multilanguage support (i18n with `react-i18next`)
- Integration with the YouTube API (featured & latest videos)
- Music suggestion form
- Modern and responsive interface

---

## ๐Ÿง  Key Features

### ๐Ÿ” Authentication
- Register and Login authentication
- Route protection based on user authentication

### โš™๏ธ User Settings
- Preferences stored in the database (theme, language, notifications)
- Elegant settings modal using CSS variables for theming

### ๐ŸŽฌ Video Display
- Highlighted featured video section
- Dynamic video gallery powered by the YouTube API
- View count display in the video modal
- Infinite scroll and "Load More" functionality

### ๐ŸŒ Internationalization
- Support for Portuguese, English, and Spanish
- JSON-based translations integrated with `react-i18next`

### ๐Ÿ’ฌ Music Suggestions
- Suggestion page with email delivery via backend
- Real-time feedback on form submission

---

## ๐Ÿ“ Project Structure

```bash
musicgallery-fullstack/
โ”‚
โ”œโ”€โ”€ backend/ # Node.js + Express API
โ”‚ โ”œโ”€โ”€ controllers/ # API endpoint logic
โ”‚ โ”œโ”€โ”€ db/ # Database models (Users, Settings, etc.)
โ”‚ โ”œโ”€โ”€ middleware # auth.js
โ”‚ โ”œโ”€โ”€ routes/ # API routes
โ”‚ โ””โ”€โ”€ index.js # Server entry point

โ”œโ”€โ”€ frontend/ # React application
โ”‚ โ”œโ”€โ”€ public/ # Public assets (manifest, icons, etc.)
โ”‚ โ”œโ”€โ”€ src/
โ”‚ โ”‚ โ”œโ”€โ”€ components/ # Reusable components (Navbar, Footer, etc.)
โ”‚ โ”‚ โ”œโ”€โ”€ context/ # React contexts (auth, settings, etc.)
โ”‚ โ”‚ โ”œโ”€โ”€ i18n/ # i18n config and translation files
โ”‚ โ”‚ โ”œโ”€โ”€ pages/ # Application pages (Home, Suggestions, etc.)
โ”‚ โ”‚ โ”œโ”€โ”€ styles/ # Modular and responsive CSS
โ”‚ โ”‚ โ””โ”€โ”€ main.jsx # React app entry point
โ”‚ โ””โ”€โ”€ vite.config.js # Vite build configuration
```

## ๐Ÿš€ Technologies Used

```
| Layer | Stack |
|---------------|------------------------------------------------------------------------|
| Frontend | React, Vite, CSS, i18next |
| Backend | Node.js, Express, Nodemailer |
| Database | PostgreSQL |
| External APIs | YouTube Data API v3 |
```

---

## ๐Ÿ› ๏ธ Installation & Setup

### ๐Ÿ”ง Prerequisites

- Node.js โ‰ฅ 18
- PostgreSQL โ‰ฅ 15

### ๐Ÿ“ฆ Installation

```bash
git clone https://github.com/MMaffi/musicgallery-fullstack.git
cd musicgallery-fullstack
```

### ๐Ÿ”™ Backend

```bash
cd backend
cp .env.example .env
npm install
npm run build
```

### ๐ŸŽจ Frontend

```bash
cd frontend
npm install
npm run build
```

## ๐Ÿงช Future Improvements

- Favorite system and user-created playlists
- Admin dashboard to manage suggestions
- Advanced search and filtering by genre/artist
- Custom video uploads by users

---

## ๐Ÿค Contributing

Contributions are welcome! Feel free to open **issues**, **fork** the repository, and submit **pull requests**.

```bash
# Create your branch
git checkout -b my-feature

# Commit your changes
git commit -m "Add new feature"

# Push to remote
git push origin my-feature
```

## ๐Ÿ“„ License

This project is licensed under the [MIT License](LICENSE).

---

## ๐Ÿง‘โ€๐Ÿ’ป Developed by

**Mateus Maffi**
[GitHub](https://github.com/MMaffi) โ€ข [LinkedIn](https://www.linkedin.com/in/mateusmaffi)

---

## โญ Give a Star!

If you like this project, consider giving it a โญ on the repository. It really helps!