This is a web project to stream music from Spotify and show users nearby that listen to similar music using the PostGIS extension for PostgreSQL.
Import the database from the resource folder into pgAdmin.
Create a spotify developer account and use that client_id/secret in the config file.
For e-mail system to work, create a gmail account and authorize unsecure apps in google settings, then replace credentials in gmail.js
Run node app.js to start the server (port 3000 by default) or nodemon app.js to detect file changes automatically and restart the server for you.
- Node.js (v14.16.1)
- PostgreSQL With PostGIS Extension
- Spotify Developer Account.
Node Modules
- Express - npm install express
- Express Sessions - npm install express-session
- Express Flash - npm install express-flash
- Postgresql for Node.js - npm install mpg
- EJS - npm install ejs
- Crypto-js - npm install crypto-js
- Nodemailer - npm install nodemailer
- Multer - npm install multer
- Cookie-parser - npm cookie-parser
- Querystring - npm install querystring
- Spotify web api node - npm install spotify-web-api-node
- Morgan - npm install morgan
- Nodemon - npm install nodemon
- Colors - npm install colors
├── app.js - entry point - starts https sever
├── /config - config settings, env variables
├── /models - data access layer, business logic
├── /public - public files https://localhost:3000/(filepath)
├── /res - resources
├── /routes - api routes
└── /views -
Use backup file in resource folder for the template database (test: 671f54ce0c540f78ffe1e26dcf9c2a047aea4fda)
Node/Express Login System
Spotify API Demo
Web Playback SDK
Spotify Authorization
Geolocation
Nodemailer
Package size scanner
Build codepens
| OPERATING SYSTEM | BROWSERS | STATUS |
|---|---|---|
| Mac/Windows/Linux | Chrome, Firefox, IE*, Microsoft Edge | ✓ Supported |
| Android | Chrome, Firefox | ✕ Not Supported |
| iOS | Safari, Chrome | ✕ Not Supported |
- IE 11 or above. Must be on Windows 8.1 or above.
- It will stream whatever audio quality is set on spotify settings, very high might lag.


