https://github.com/gghf1/vinylopia
Vinylopia is a community-driven marketplace designed for vinyl collectors, traders, and music lovers. Inspired by Discogs, Vinylopia allows users to browse, list, and purchase vinyl records directly from one another.
https://github.com/gghf1/vinylopia
api blade buy-sell css discogs-api javascript laravel marketplace music php spotify-api spotify-web-api trade vinyl vinyl-records
Last synced: about 1 month ago
JSON representation
Vinylopia is a community-driven marketplace designed for vinyl collectors, traders, and music lovers. Inspired by Discogs, Vinylopia allows users to browse, list, and purchase vinyl records directly from one another.
- Host: GitHub
- URL: https://github.com/gghf1/vinylopia
- Owner: GGHF1
- License: mit
- Created: 2025-02-21T20:16:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-02T19:10:31.000Z (about 1 year ago)
- Last Synced: 2025-03-02T19:27:59.916Z (about 1 year ago)
- Topics: api, blade, buy-sell, css, discogs-api, javascript, laravel, marketplace, music, php, spotify-api, spotify-web-api, trade, vinyl, vinyl-records
- Language: PHP
- Homepage:
- Size: 2.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Vinylopia: The Marketplace for Vinyl Lovers
Vinylopia is a community-driven marketplace designed for vinyl collectors, traders, and music lovers. Inspired by Discogs, Vinylopia allows users to browse, list, and purchase vinyl records directly from one another. Whether you’re hunting for rare editions, limited releases, or simply looking to expand your collection, Vinylopia brings together a passionate community of music enthusiasts to buy, sell, and trade vinyl records.
## Status
**Project Status**: Active.
## Installation Steps
### 1. Clone/Download the repository
Clone or Download as ZIP this repository to your PC.
### 2. Install PHP/SQL/Composer
Make sure to install:
1. [PHP](https://www.php.net/downloads.php)
2. SQL Database, for instance, [MySQL](https://dev.mysql.com/downloads/installer/).
3. [Composer](https://getcomposer.org/download/) for managing PHP dependencies.
### 3. Configure SSL Certificate for API Requests
The application makes API calls that require SSL verification. Follow these steps to ensure API requests work correctly:
#### Download the certificate bundle
1. Download the latest CA certificate bundle from: https://curl.se/ca/cacert.pem
2. Save it to a location on your system (e.g. ```C:/php/extras/ssl/cacert.pem``` or in your PHP installation directory)
3. Edit your `php.ini` file and add these lines: ```curl.cainfo = "PATH_TO_FILE/cacert.pem"``` Replace `PATH_TO_FILE` with the actual path where you saved the file.
4. Restart your web server if it's already running
### 4. Create the Database
Create an account for your MySQL DB and CREATE DATABASE vinylopiaDB.
```bash
create database vinylopiaDB
```
### 5. Configure Environment Variables
#### 5.1. Database Configuration
Create and edit a ```.env``` file according to your DB and Spotify API settings.
You can take the code from ```.env.example``` file.
After creating ```.env``` file, replace DB information with yours. For example:
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=vinylopiaDB
DB_USERNAME=root
DB_PASSWORD=1234
```
#### 5.2. Spotify API Configuration
To integrate with the Spotify API, you'll need to create a Spotify Developer account and register your application to get your Client ID and Client Secret. Here is how you do it:
1. Create a Spotify Developer Account
- Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/applications).
- Log in with your existing Spotify account or register a new account, if you don't have one.
- After logging in, you will be redirected to Spotify Developer Dashboard.
2. Create a New Application.
- On the Developer Dashboard, click on the "Create App" button.
- A form will appear where you need to provide the following details:
1) App name;
2) App Description;
3) Website (optional);
4) Redirect URI (for example: http://127.0.0.1:8000/);
5) In a section "Which API/SDKs are you planning to use?" click on "Web API".
- After filling out the details, click "Save" button to create the application.
3. Obtain Your Client ID and Client Secret.
- After creating the application, you will be redirected to the application page where you need to click on "Settings" button.
- On the settings page you will see your "Client ID" and "View client secret" button, which opens "Client secret".
4. Add the following lines to your `.env` file, replacing the placeholders with your actual **Spotify Client credentials**.
```
SPOTIFY_CLIENT_ID="your_id"
SPOTIFY_CLIENT_SECRET="your_secret"
```
### 6. Install the Necessary Dependencies
Enter this command to install all necessary dependencies:
```bash
composer install
```
### 7. Create Storage Link
To create a symbolic link from ```public/storage``` to ```storage/app/public```, where user avatar images (and other files) will be stored, run the following command:
```bash
php artisan storage:link
```
### 8. Create the avatars Folder
After creating the storage link, you may need to create the ```avatars``` folder inside ```public/storage``` and ```storage/app/public``` directories if it doesn't exist.
Correct paths should look as follows: ```public/storage/avatars``` and ```storage/app/public/avatars```
### 9. Generate Application Key
Laravel requires an application key to be set. You can generate it by running:
```bash
php artisan key:generate
```
### 10. Migrate the Database
After configuring the ```.env``` file, run the following commands to create the necessary tables in your database and populate them with vinyl information:
```bash
php artisan migrate
php artisan migrate --seed
```
### 11. Serve the Application
Start the PHP server by running:
```bash
php artisan serve
```
This command will launch the server at ```http://127.0.0.1:8000/``` by default.
## License
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/license/MIT).