diff --git a/README.md b/README.md index c9f367b..3aefca8 100644 --- a/README.md +++ b/README.md @@ -1,125 +1,185 @@ -🎡Music Tracker API -A simple Node.js + SQLite3 project to manage a list of songs using RESTful APIs. Optionally includes a basic frontend to interact with the API. - -πŸ“ Project Structure -πŸ“¦ Music Tracker API -β”œβ”€β”€ controllers/ -β”‚ └── songController.js -β”œβ”€β”€ routes/ -β”‚ └── songRoutes.js -β”œβ”€β”€ db.js -β”œβ”€β”€ music.db -β”œβ”€β”€ server.js -β”œβ”€β”€ MusicAPI.html (optional frontend) +# 🎡 MusicTrackerAPI + +

+ MusicTrackerAPI Banner +

+ +

+ + + + +

+ +--- + +## πŸ“š Table of Contents + +- [πŸ“– Overview](#-overview) +- [✨ Features](#-features) +- [πŸ› οΈ Tech Stack](#️-tech-stack) +- [πŸ“¦ Prerequisites](#-prerequisites) +- [πŸš€ Installation](#-installation) +- [πŸ—‚οΈ Project Structure](#️-project-structure) +- [🀝 Contributing to GSSoC 2025](#-contributing-to-gssoc-2025) +- [🌟 Contributors](#-contributors) +- [πŸ… Hall of Fame](#-hall-of-fame-) +- [πŸ“˜ GSSoC 2025 Guidelines](#-gssoc-2025-guidelines) +- [πŸ“„ License](#-license) +- [πŸ™ Acknowledgments](#-acknowledgments) +- [πŸ’¬ Join Our Community](#-join-our-community) + +--- + +## πŸ“– Overview + +🎧 `MusicTrackerAPI` is an open-source API system built to help developers and users track and manage music habits, listening time, genres, and artist preferences. + +--- + +## ✨ Features + +- 🎢 Track songs, artists, genres +- πŸ“Š Record and analyze listening habits +- πŸ” Easy integration with front-end applications +- 🧩 Modular architecture +- βš™οΈ RESTful API structure + +--- + +## πŸ› οΈ Tech Stack + +- **Backend:** Node.js, Express.js +- **Database:** SQLite3 + +--- + +## πŸ“¦ Prerequisites + +- Node.js & npm installed +- MongoDB (local or cloud) +- Git + +--- + +## πŸš€ Installation + +```bash +# Fork and clone the repository +git clone https://github.com/YOUR-USERNAME/musictrackerAPI.git + +# Navigate into the project +cd MusicTrackerAPI + +# Install dependencies +npm install + +# Start the server +npm start +``` + +## πŸ—‚οΈ Project Structure +Music Tracker API +β”œβ”€β”€ controllers/ +β”‚ └── songController.js +β”œβ”€β”€ routes/ +β”‚ └── songRoutes.js +β”œβ”€β”€ db.js +β”œβ”€β”€ music.db +β”œβ”€β”€ server.js +β”œβ”€β”€ MusicAPI.html (optional frontend) └── README.md -πŸ“Œ Features -βœ… Create, Read songs using API -βœ… Local database using SQLite -βœ… Integrated with DB Browser for SQLite -βœ… HTML frontend (optional) -βœ… Fully local setup β€” no external APIs used - -πŸš€ How to Run This Project -1. πŸ“₯ Clone the Repository - bash - git clone https://github.com/your-username/music-tracker-api.git - cd music-tracker-api - -2. πŸ“¦ Install Dependencies - Make sure you have Node.js installed, then: - bash - npm install - -3. βœ… Start the Server - bash - node server.js - The server will start at: - http://localhost:5000 - -🧠 API Endpoints -GET /api/songs -Returns all songs in the database. -Response: -json - - { - "id": 1, - "title": "Test Song", - "artist": "Tester", - "genre": "Rock" - } - - -POST /api/songs -Adds a new song to the database. -Request Body: -json -{ - "title": "Shape of You", - "artist": "Ed Sheeran", - "genre": "Pop" -} - -Response: -json -{ - "id": 2, - "title": "Shape of You", - "artist": "Ed Sheeran", - "genre": "Pop" -} - -πŸ—ƒοΈ Database Used -πŸ“Œ SQLite Database File: music.db -πŸŽ›οΈ Managed Using: DB Browser for SQLite -πŸ› οΈ Tables are auto-created on server start (via db.js) - -🎼 Table Schema: -sql -CREATE TABLE IF NOT EXISTS songs ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - title TEXT, - artist TEXT, - genre TEXT -); - -🌐 Frontend -You can open the MusicAPI.html file directly in your browser: -πŸ”— Features: - 1.Add a song using a form - 2.View all songs in a list -To use: - 1.Make sure the server is running. - 2.Double-click MusicAPI.html to open it in your browser. - 3.Fill in the form and click β€œAdd Song”. - -πŸ“¬ Sample curl Requests -Add a Song: -bash -curl -X POST http://localhost:5000/api/songs \ - -H "Content-Type: application/json" \ - -d "{\"title\":\"Test Song\", \"artist\":\"Tester\", \"genre\":\"Rock\"}" - -Get All Songs: -bash -curl http://localhost:5000/api/songs - -πŸ›  Built With -1.Node.js -2.Express.js -3.SQLite3 -4.[HTML/CSS/JS] for frontend - -πŸ“„ License -This project is open-source and free to use. Feel free to fork and modify for learning or improvement! +## 🀝 Contributing to GSSoC 2025 +Welcome future contributors! πŸŽ‰ +This project is part of GirlScript Summer of Code 2025 (GSSoC 2025). We encourage all levels of developers to contribute and grow with us! + +## 🎯 Why Contribute? +πŸš€ Learn and build real-world open source projects + +✨ Improve your skills and resume + +🌍 Be a part of the open-source ecosystem + +πŸ… Earn GSSoC badges, swags & recognition + +## πŸ“Œ Contribution Guidelines + +βœ… Do's +βœ… Read documentation thoroughly before contributing + +βœ… Follow code style and project structure + +βœ… Write descriptive commit messages + +βœ… Test your changes before submitting PR + +βœ… Be respectful and collaborative + +βœ… Ask questions if you're unsure + +❌ Don'ts +❌ Don’t spam with multiple PRs for same issue + +❌ Don’t copy code without understanding + +❌ Don’t make unnecessary changes + +❌ Don’t ignore code review feedback + +❌ Don’t forget to update documentation + +## 🎯 Contribution Levels +| Level | Description | Points | Badge | +| --------------- | ----------------------------------------- | ------ | --------------------------------------------------------------------- | +| πŸ₯‰ Beginner | Fix typos, update docs, minor bug fixes | 5–10 | ![Beginner](https://img.shields.io/badge/Level-Beginner-green) | +| πŸ₯ˆ Intermediate | Add features, improve UI/UX, performance | 15–25 | ![Intermediate](https://img.shields.io/badge/Level-Intermediate-blue) | +| πŸ₯‡ Advanced | Major features, architecture improvements | 30–50 | ![Advanced](https://img.shields.io/badge/Level-Advanced-red) | + +## 🌟 Contributors + + +## πŸ… Hall of Fame 🌟 +We're grateful to all our amazing contributors who have helped make this project better! + + + +| Avatar | Name | Role | Contributions | +|--------|------|------|---------------| +| | **Ananya-te** | πŸ‘‘ **Project Creator** | Initial project setup, Core development | +| 🎯 |**Your Name Here**| 🌱**New Contributor** | *Contribute and see your name here!* | +| 🎯 | **Your Name Here** | 🌱 **New Contributor** | *Contribute and see your name here!* | + +## πŸ“˜ GSSoC 2025 Guidelines +## πŸ“‹ For Participants +βœ… Do's +Read instructions carefully + +Pick an issue and comment before PR + +Write clear and concise commit messages +Respect deadlines and feedback +❌ Don'ts +Don’t push irrelevant or copied PRs +Don’t submit work without testing +Don’t neglect repo standards +## πŸ“„ License +This project is licensed under the MIT License. +## πŸ™ Acknowledgments +Special thanks to all contributors and maintainers. +Huge gratitude to GirlScript Foundation for organizing GSSoC. +Original project author: Ananya-te +## πŸ’¬ Join Our Community +[![Discord](https://img.shields.io/badge/Join_Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](#) +[![Telegram](https://img.shields.io/badge/Join_Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](#) +Made with ❀️ by Ananya-te and the open-source community.