{"id":33133162,"url":"https://github.com/WengYiNing/Auralytics","last_synced_at":"2025-11-16T13:00:54.589Z","repository":{"id":284888595,"uuid":"953394388","full_name":"WengYiNing/Auralytics","owner":"WengYiNing","description":"Discover your unique music story.  Explore your top tracks, artists, genres, and musical eras.","archived":false,"fork":false,"pushed_at":"2025-08-18T13:30:21.000Z","size":1691,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-18T15:28:14.316Z","etag":null,"topics":["api","arts","data-visualization","express","music","music-analysis","nodejs","react","spotify","spotify-api","typescript"],"latest_commit_sha":null,"homepage":"https://auralyticsmusic.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WengYiNing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-23T09:04:24.000Z","updated_at":"2025-08-18T13:30:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"15b60833-79ef-41ee-b3da-f319245d0976","html_url":"https://github.com/WengYiNing/Auralytics","commit_stats":null,"previous_names":["wengyining/auralytics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WengYiNing/Auralytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WengYiNing%2FAuralytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WengYiNing%2FAuralytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WengYiNing%2FAuralytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WengYiNing%2FAuralytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WengYiNing","download_url":"https://codeload.github.com/WengYiNing/Auralytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WengYiNing%2FAuralytics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284711515,"owners_count":27050939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","arts","data-visualization","express","music","music-analysis","nodejs","react","spotify","spotify-api","typescript"],"created_at":"2025-11-15T10:00:33.472Z","updated_at":"2025-11-16T13:00:54.578Z","avatar_url":"https://github.com/WengYiNing.png","language":"TypeScript","funding_links":[],"categories":["Audio Tools","Visualise the music you are listening to","TypeScript"],"sub_categories":[],"readme":"# Auralytics\n[![Awesome](https://awesome.re/badge.svg)](https://awesome.re) \n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"Auralytics Logo\" width=\"150\"\u003e\n\u003c/p\u003e\n\nAuralytics is an open-source project designed to provide in-depth insights into users' Spotify listening habits. By leveraging Spotify's API, Auralytics provides users with their  top tracks, artists, albums, genres, and musical eras.\n\nYou are very welcome to try our official service—the production version of Auralytics is available at:  [**https://auralyticsmusic.com**](https://auralyticsmusic.com)\n\nThis repository contains the **open-source local version**, allowing developers to run Auralytics locally and contribute improvements. We actively review and merge valuable contributions into the production environment. Your contributions help enhance Auralytics for the entire community.\n\n---\n\n## 📑 Table of Contents\n\n- [🗝️ Prerequisites: Obtaining Spotify Client ID \u0026 Client Secret](#️-prerequisites-obtaining-spotify-client-id--client-secret)\n- [💻 Tech Stack](#-tech-stack)\n- [🚀 Running the Project](#-running-the-project)\n  - [Clone the repository](#clone-the-repository)\n  - [Create the `.env` files](#create-the-env-files)\n  - [Start the project](#start-the-project)\n- [🤝 Contributing](#-contributing)\n- [📜 License](#-license)\n- [📩 Contact Us](#-contact-us)\n\n---\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Auralytics landing page demo.png\" alt=\"demo\" width=\"800\"\u003e\n\u003c/p\u003e\n\n## 🗝️ Prerequisites: Obtaining Spotify Client ID \u0026 Client Secret\n\nAuralytics relies on Spotify's API to fetch user data, so you will need a **Spotify Client ID** and **Client Secret** before running the project. Please follow the steps we carefully organized to obtain them:\n\n1. Go to [**Spotify for Developers**](https://developer.spotify.com/).\n2. Log in with your Spotify account (no need to be Premium).\n3. Go to [**Dashboard**](https://developer.spotify.com/dashboard).\n4. Click **Create app**.\n5. Fill in the required details and agree to Spotify’s terms (Redirect URIs must be align with the REDIRECT_URI in .env for Backend).\n6. Once created, go to **Dashboard** and click on your app.\n7. Click \"Settings\".\n8. Copy the **Client ID** and **Client Secret**.\n9. Add these credentials to the project's `.env` files (see below).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/Spotify API Example.png\" alt=\"Spotify API Example\" width=\"800\"\u003e\n\u003c/p\u003e\n\nFor a more detailed guide, please visit the [Spotify API Documentation](https://developer.spotify.com/documentation/web-api/).\n\n---\n\n## 💻 Tech Stack\n\nAuralytics is built using the following technologies:\n\n### **Frontend:**\n- **React** (UI framework)\n- **TypeScript** (strongly-typed JavaScript)\n- **CSS** (custom styling)\n- **Create React App (CRA)** (build tool)\n\n### **Backend:**\n- **Node.js** (runtime environment)\n- **Express.js** (server framework)\n- **Redis** (caching layer to reduce API calls)\n- **Spotify OAuth 2.0** (authentication)\n\n---\n\n## 🚀 Running the Project\n\n### Prerequisites\n\nBefore starting, make sure you have the following installed on your system:\n\n- **Git**: [Download and install Git](https://git-scm.com/downloads)\n- **Node.js** and **npm**: [Download and install Node.js](https://nodejs.org/en) (npm comes with Node.js)\n- **Docker** (optional, if you prefer using Docker): [Download and install Docker](https://www.docker.com/get-started)\n\n### Clone the repository\n\n```sh\ngit clone https://github.com/WengYiNing/Auralytics\ncd Auralytics\n```\n\n### Create the `.env` files\n\nThis project requires an `.env` file to run. Before starting the application, please make sure to create the `.env` files and add .env to .gitignore to avoid committing sensitive information.\n\n#### For macOS/Linux Developers\n\n**Backend Steps**\n\n1. Navigate to the `backend/` directory:\n   ```sh\n   cd backend\n   ```\n2. Copy the .env.example file to create a new one:\n   ```sh\n   cp .env.example .env\n   ```\n3. Open the .env file and configure the necessary values:\n   ```sh\n   nano .env\n   ```\n4. Save and exit (Ctrl + X, then Y, then Enter).\n\n**Frontend Steps**\n\n1. Navigate to the `frontend/` directory:\n   ```sh\n   cd ../frontend\n   ```\n2. Copy the .env.example file to create a new one:\n   ```sh\n   cp .env.example .env\n   ```\n3. Open the .env file and configure the necessary values:\n   ```sh\n   nano .env\n   ```\n4. Save and exit (Ctrl + X, then Y, then Enter).\n\n#### For Windows Developers\n\n**Backend Steps**\n\n1. Navigate to the `backend/` directory:\n   ```powershell\n   cd backend\n   ```\n2. Copy the .env.example file to create a new one:\n   ```powershell\n   copy .env.example .env\n   ```\n3. Open the .env file and configure the necessary values using Notepad or another text editor:\n   ```powershell\n   notepad .env\n   ```\n4. Save and close the file.\n\n**Frontend Steps**\n\n1. Navigate to the `frontend/` directory:\n   ```powershell\n   cd ../frontend\n   ```\n2. Copy the .env.example file to create a new one:\n   ```powershell\n   copy .env.example .env\n   ```\n3. Open the .env file and configure the necessary values:\n   ```powershell\n   notepad .env\n   ```\n4. Save and close the file.\n\n---\n\n### Start the project\n\nAuralytics can be started using two different methods:\n\n#### Option 1: Using Docker\n\n1. Back to root path:\n   ```sh\n   cd Auralytics\n   ```\n2. Build and run containers:\n   ```sh\n   docker compose up --build\n   ```\n3. Access the application:\n   - Frontend: `http://localhost:3000`\n   - Backend API: `http://localhost:8888`\n\nTo stop the service, use \"Ctrl + C\". Then input:\n\n```sh\ndocker compose down\n```\n\n---\n\n#### Option 2: Running Manually Without Docker\n\n##### For macOS/Linux Developers (using terminal)\n\n1. Back to root path:\n   ```sh\n   cd Auralytics\n   ```\n\n2. Start the backend:\n\n   ```sh\n   cd backend\n   npm install\n   node server.js\n   ```\n\n   - Backend will run at `http://localhost:8888`\n\n3. Start the frontend:\n\n   ```sh\n   cd frontend\n   npm install\n   npm start\n   ```\n\n   - Frontend will run at `http://localhost:3000`\n\n##### For Windows Developers (using PowerShell)\n\n1. Back to root path:\n   ```powershell\n   cd Auralytics\n   ```\n\n2. Start the backend:\n\n   ```powershell\n   cd backend\n   npm install\n   node server.js\n   ```\n\n   - Backend will run at `http://localhost:8888`\n\n3. Start the frontend:\n\n   ```powershell\n   cd frontend\n   npm install\n   npm start\n   ```\n\n   - Frontend will run at `http://localhost:3000`\n\n\u003e Note: Make sure Redis is running locally if not using Docker.\n\n---\n\n## 🤝 Contributing\n\nWe **enthusiastically welcome contributions** from the community! Every pull request (PR) is carefully reviewed, and we strive to incorporate meaningful improvements into the production environment.\n\n### **How to Contribute:**\n1. Fork the repository.\n2. Create a new branch for your feature/fix.\n3. Make sure to follow the existing project structure to make you change and test them locally.\n4. Update the relevant documentations.\n5. Submit a pull request with a clear description.\n\n---\n\n## 📜 License\n\nAuralytics is licensed under the **Apache License 2.0**. You are free to use, modify, and distribute the project, as long as you comply with the terms of the license, including proper attribution and inclusion of the license notice.\n\nFor full license details, check the [`LICENSE`](./LICENSE) file.\n\n---\n\n## 📩 Contact Us\n\nIf you have any questions or suggestions, feel free to reach out to us:\n\n- **Email:** [musicinsightsforspotify@gmail.com](musicinsightsforspotify@gmail.com)\n- **X:** [@AuralyticsMusic](https://x.com/AuralyticsMusic)\n\nThank you for your interest in Auralytics! We look forward to your contributions and hope you enjoy using and improving this project. 🎧\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWengYiNing%2FAuralytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWengYiNing%2FAuralytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWengYiNing%2FAuralytics/lists"}