{"id":25276149,"url":"https://github.com/spignelon/pomsync","last_synced_at":"2025-04-06T10:18:47.970Z","repository":{"id":276382690,"uuid":"929113836","full_name":"spignelon/PomSync","owner":"spignelon","description":"A very simple synchronised pomodoro timer using python and flask ","archived":false,"fork":false,"pushed_at":"2025-03-18T06:59:20.000Z","size":88,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T07:40:31.876Z","etag":null,"topics":["flask","pomodoro"],"latest_commit_sha":null,"homepage":"https://pomsync.onrender.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spignelon.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}},"created_at":"2025-02-07T20:44:15.000Z","updated_at":"2025-03-18T06:59:17.000Z","dependencies_parsed_at":"2025-02-07T22:29:43.004Z","dependency_job_id":"6c4b0d7a-7182-41ae-a569-08bb79a4b097","html_url":"https://github.com/spignelon/PomSync","commit_stats":null,"previous_names":["spignelon/pomsync"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spignelon%2FPomSync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spignelon%2FPomSync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spignelon%2FPomSync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spignelon%2FPomSync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spignelon","download_url":"https://codeload.github.com/spignelon/PomSync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464210,"owners_count":20942970,"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","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":["flask","pomodoro"],"created_at":"2025-02-12T15:39:25.500Z","updated_at":"2025-04-06T10:18:47.948Z","avatar_url":"https://github.com/spignelon.png","language":"HTML","readme":"# PomSync: Sync Pomodoro Timer\n\nA Flask-based synchronized Pomodoro timer that allows multiple users to join the same timer session and stay in sync. The frontend is built with HTML, CSS, and JavaScript, while the backend handles session management and timing.\n\n## Features\n- **Synchronized Timer:** All users connected see the same timer.\n- **Two Modes:** 25-5 minute and 50-10 minute Pomodoro sessions.\n- **Audio Alerts:** Start and end sounds for each phase.\n- **Reset Option:** Allows resetting the session.\n- **Simple Deployment:** Deploy on **Render.com** or a **Debian VPS**.\n\n## Tech Stack\n- **Backend:** Flask (Python)\n- **Frontend:** HTML, CSS, JavaScript\n- **Server:** Gunicorn (for production deployment)\n\n## Setup \u0026 Installation\n\n### Local Development\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/spignelon/PomSync.git\n   cd PomSync\n   ```\n2. **Create a Virtual Environment**\n   ```bash\n   python3 -m venv venv\n   source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n   ```\n3. **Install Dependencies**\n   ```bash\n   pip install -r requirements.txt\n   ```\n4. **Run the Flask Server**\n   ```bash\n   python server.py\n   ```\n5. **Access the App**\n   Open a browser and go to:\n   ```\n   http://127.0.0.1:5000\n   ```\n\n## Deploying on Render.com\n\n1. **Push Your Code to GitHub**\n2. **Go to [Render Dashboard](https://dashboard.render.com/)**\n3. **Create a New Web Service**\n4. **Use These Settings:**\n   - **Runtime:** Python\n   - **Build Command:**\n     ```bash\n     pip install -r requirements.txt\n     ```\n   - **Start Command:**\n     ```bash\n     gunicorn -b 0.0.0.0:$PORT server:app\n     ```\n5. **Deploy \u0026 Get Your Public URL**\n\n## Deploying on Debian VPS\n\n1. **SSH into Your Server**\n   ```bash\n   ssh user@your-server-ip\n   ```\n2. **Install Required Packages**\n   ```bash\n   sudo apt update \u0026\u0026 sudo apt install python3 python3-venv python3-pip nginx\n   ```\n3. **Clone the Repo \u0026 Set Up Virtual Env**\n   ```bash\n   git clone https://github.com/spignelon/PomSync.git\n   cd PomSync\n   python3 -m venv venv\n   source venv/bin/activate\n   pip install -r requirements.txt\n   ```\n4. **Run Gunicorn Server**\n   ```bash\n   gunicorn -b 0.0.0.0:5000 server:app\n   ```\n5. **Set Up Nginx Reverse Proxy (Optional)**\n   ```bash\n   sudo nano /etc/nginx/sites-available/pomodoro\n   ```\n   Add the following:\n   ```nginx\n   server {\n       listen 80;\n       server_name yourdomain.com;\n       location / {\n           proxy_pass http://127.0.0.1:5000;\n           proxy_set_header Host $host;\n           proxy_set_header X-Real-IP $remote_addr;\n       }\n   }\n   ```\n   Then enable it:\n   ```bash\n   sudo ln -s /etc/nginx/sites-available/pomodoro /etc/nginx/sites-enabled/\n   sudo systemctl restart nginx\n   ```\n6. **Access via Browser**\n   ```\n   http://yourdomain.com\n   ```\n\n## API Endpoints\n| Method | Endpoint     | Description                 |\n|--------|-------------|-----------------------------|\n| POST   | `/start`    | Starts a new Pomodoro session |\n| POST   | `/reset`    | Resets the session         |\n| GET    | `/status`   | Gets the current session status |\n\n## Contributing\nFeel free to open issues or submit pull requests to improve this project!\n\n## License\nThis project is licensed under the GPL-2.0 license.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspignelon%2Fpomsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspignelon%2Fpomsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspignelon%2Fpomsync/lists"}