{"id":15013362,"url":"https://github.com/pilestin/harmoni","last_synced_at":"2026-01-05T05:03:41.976Z","repository":{"id":183975062,"uuid":"671097094","full_name":"Pilestin/Harmoni","owner":"Pilestin","description":"It is a social music application where you can listen to music, create lists, and see your friends and what they are listening to.","archived":false,"fork":false,"pushed_at":"2023-09-12T11:57:35.000Z","size":116601,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T05:25:51.747Z","etag":null,"topics":["bootstrap","css","htlm5","javascript","meteorjs","minimongo","mongodb","music-app","web-audio-api"],"latest_commit_sha":null,"homepage":"https://harmoni.eu.meteorapp.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pilestin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-07-26T14:29:06.000Z","updated_at":"2024-01-07T15:39:07.000Z","dependencies_parsed_at":"2024-11-28T14:37:40.328Z","dependency_job_id":null,"html_url":"https://github.com/Pilestin/Harmoni","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":"0.26086956521739135","last_synced_commit":"dbb9c6c844678b3ef8cff07bf09e5611b164a49e"},"previous_names":["pilestin/harmoni"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pilestin/Harmoni","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilestin%2FHarmoni","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilestin%2FHarmoni/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilestin%2FHarmoni/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilestin%2FHarmoni/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pilestin","download_url":"https://codeload.github.com/Pilestin/Harmoni/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pilestin%2FHarmoni/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001135,"owners_count":26083022,"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-10-09T02:00:07.460Z","response_time":59,"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":["bootstrap","css","htlm5","javascript","meteorjs","minimongo","mongodb","music-app","web-audio-api"],"created_at":"2024-09-24T19:44:10.968Z","updated_at":"2025-10-09T09:31:17.859Z","avatar_url":"https://github.com/Pilestin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Harmoni \n\nIt is a social music application where you can listen to music, create lists, see your friends and what they are listening to.\n\n\n[Achievement](#achievement-)\n\n[Installation and Run](#installations-and-run-)\n\n[How to play music (local)](#how-to-play-music-local-)\n\n[Goals](#goals)\n\n[Koleksiyonlar (Collections)](#koleksiyonlar-collections--)\n\n## Achievement : \n\n- Sign up and login\n- Ability to listen to music\n- Music search\n- Ability to see music categories\n- Ability to create favourite music lists\n- Ability to follow users\n- See what your friends are listening now\n- Ability to listen to what your friends are listening to\n  \n\n\u003cimg src=\"https://github.com/Pilestin/Harmoni/assets/56133248/99b5e4c3-08d7-41e4-9e73-6f95d68956a0\" width=\"700px\"\u003e\n\u003cimg src=\"https://github.com/Pilestin/Harmoni/assets/56133248/b3e669d6-9334-4dca-907a-aa774330f7a5\" width=\"700px\"\u003e\n\u003cimg src=\"https://github.com/Pilestin/Harmoni/assets/56133248/a5a275a9-7fd4-4106-9ff1-b905228443c2\" width=\"700px\"\u003e\n\u003cimg src=\"https://github.com/Pilestin/Harmoni/assets/56133248/2832d4c0-0c69-4ae2-8201-c3cbd6aab564\" width=\"700px\"\u003e\n\n\n\n\n\n### Installations and Run :\n\n```bash\n\u003e git clone https://github.com/Pilestin/Harmoni\n\u003e cd Harmoni\n\u003e npm install\n\u003e meteor\n```\n\n\n### How to play music (local) :\n\nThe music uploaded in the project is copied in the public/musics folder (like public/images in images). The feature of this folder is that it can be accessed from the url.\n\nUsing this, the music is taken from the url (saved with the id) and turned into a playable content.\n\ne.x : http://localhost:3000/musics/C4tb7b62sYRndiApJ.mp3 \n\non server : \n  \n  ```jsx\n    WebApp.connectHandlers.use('/musics', (req, res) =\u003e {\n    const musicFile = Assets.absoluteFilePath('musics/' + req.url.slice(1));\n    res.setHeader('Content-Type', 'audio/mpeg');\n    res.setHeader('Content-Disposition', 'attachment');\n    res.writeHead(200);\n    const readStream = fs.createReadStream(musicFile);\n    readStream.pipe(res);\n  });\n  ```\n\n  on client : \n\n  ```jsx\n  const playMusic = function (music) {\n    const musicFile = MusicFiles.findOne({ _id: music.fileId });\n\n    const musicUrl = 'http://localhost:3000/musics/' + musicFile._id + musicFile.extensionWithDot; // Sunucudan alacağınız müzik dosyasının URL'si\n\n    const audioContext = new (window.AudioContext || window.webkitAudioContext)();\n\n    fetch(musicUrl)\n        .then(response =\u003e response.arrayBuffer())\n        .then(buffer =\u003e audioContext.decodeAudioData(buffer))\n        .then(decodedData =\u003e {\n            const audioElement = document.getElementById('audioPlayer');\n            audioElement.src = musicUrl; // Audio etiketine URL'yi atıyoruz\n            audioElement.play(); // Müziği çalıyoruz\n        })\n        .catch(error =\u003e console.error('Error loading audio: ', error));\n\n\n    Meteor.call('user_currentPlay', music, function (err, res) {\n        if (err) {\n            console.log(\"err : \", err)\n        }\n        console.log(\"res : \", res)\n    });\n}\n  ```\n\n  \n### Goals:\n\n- [x]  Sign up and login\n- [x]  Ability to listen to music\n- [x]  Music search\n- [x]  Ability to see music categories\n- [x]  Ability to create music lists\n- [x]  Ability to add friends\n- [x]  See what your friends are listening now\n- [x]  Ability to listen live to what your friends are listening to\n\n\n### Koleksiyonlar (Collections) : : \n\n![Untitled](https://github.com/Pilestin/Harmoni/assets/56133248/62fda4ff-3c7e-4bce-bd35-25ec018e1d1b)\n\n\n1. **Kullanıcılar (Users) :** \n- Kullanıcıların kimlik bilgilerini, e-posta, şifre gibi giriş bilgilerini içerir.\n- Ayrıca kullanıcıya özel bilgiler, arkadaş listesi gibi ek özellikleri de içerebilir.\n- Kullanıcıların müzik listelerine ve arkadaşlarına erişimini sağlamak için (ID) oluşturulabilir.\n\ntemp code : \n\n1. **Müzik Listeleri (Playlists)**\n    \n    \n    - Kullanıcıların oluşturduğu müzik listelerini temsil eder.\n    - Her müzik listesi, bir başlık, açıklama ve müziklerin bir listesini içerebilir.\n    - Ayrıca müzik listesine sahip olan kullanıcının kimliği ile ilişkilendirilebilir.\n2. **Müzik Kategorileri (Music Categories)**\n    - Müzik listelerini belirli kategorilere ayırmak için kullanılabilir.\n    - Her müzik kategorisi, bir ad ve açıklama içerebilir.\n3. **Canlı Dinleme (Live Listening)**\n    - Kullanıcıların arkadaşlarının canlı olarak ne dinlediklerini takip etmek için kullanılabilir.\n    - Canlı dinleme durumu, kullanıcının kimliği ve dinlenen müziğin kimliği ile ilişkilendirilebilir.\n\n```jsx\n{\n  \"User\" : {\n    \"_id\" : \"_??\",\n    \"firstName\": \"Yasin\",\n    \"lastName\": \"Ünal\",\n    \"email\" : \"yasin@test.com\",\n    \"password\" : \"123\",\n    \"favoriteList\" : [\n      \"_mId\"\n    ],\n    \"currentPlay\" : \"musicId\",\n    \"friendList\" : [\"_uId\"],\n    \"createdAt\" : \"DATE\"\n  },\n\n  \"Music\" : {\n    \"_id\" : \"_??\", \n    \"name\" : \"\",\n    \"artist\": \"\",\n    \"link\" : \"\",\n    \"duration\" : \"\",\n    \"cId\" : \"\"\n  },\n\n  \"Categories\" : {\n    \"_id\" : \"_??\",\n    \"name\" : \"\",\n    \"description\": \"\"\n  }\n\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilestin%2Fharmoni","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpilestin%2Fharmoni","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilestin%2Fharmoni/lists"}