{"id":26063188,"url":"https://github.com/raddames-tonui/todoapp","last_synced_at":"2026-04-10T06:46:27.066Z","repository":{"id":250509021,"uuid":"833564091","full_name":"Raddames-Tonui/TodoApp","owner":"Raddames-Tonui","description":"A full-stack Todo application using React for the frontend, Flask for the backend, and PostgreSQL for the database. The project is containerized using Docker and managed with Docker Compose for easy deployment.","archived":false,"fork":false,"pushed_at":"2025-03-07T10:56:52.000Z","size":689,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T11:34:57.199Z","etag":null,"topics":["dockercompose","dockerfile","flask","postgresql","react","tailwindcss"],"latest_commit_sha":null,"homepage":"https://todotaskappp.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Raddames-Tonui.png","metadata":{"files":{"readme":"README-backend.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","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":"2024-07-25T09:51:14.000Z","updated_at":"2025-02-17T06:05:09.000Z","dependencies_parsed_at":"2024-07-28T01:45:00.508Z","dependency_job_id":"8e1e56c6-86c6-474e-8a8a-f30a59c378b8","html_url":"https://github.com/Raddames-Tonui/TodoApp","commit_stats":null,"previous_names":["raddames-tonui/todoapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Raddames-Tonui/TodoApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raddames-Tonui%2FTodoApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raddames-Tonui%2FTodoApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raddames-Tonui%2FTodoApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raddames-Tonui%2FTodoApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Raddames-Tonui","download_url":"https://codeload.github.com/Raddames-Tonui/TodoApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raddames-Tonui%2FTodoApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281069900,"owners_count":26438712,"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-26T02:00:06.575Z","response_time":61,"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":["dockercompose","dockerfile","flask","postgresql","react","tailwindcss"],"created_at":"2025-03-08T16:32:27.405Z","updated_at":"2025-10-26T07:07:07.407Z","avatar_url":"https://github.com/Raddames-Tonui.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Backend Deployment Guide\n\n\nThis guide will walk you through the deployment process for the Todo App, including setting up the backend with Render and deploying the frontend with Netlify.\n\n## a) Backend Deployment on Render\n\n### 1. Create Database on Render\n\n1. Log in to your Render account.\n2. Create a new PostgreSQL database named `todo_db`.\n3. Copy the database connection URL provided by Render. (use External URL)\n\n### 2. Configure the Flask Application\n\n1. In your Flask application, update the `app.config[\"SQLALCHEMY_DATABASE_URI\"]` with the connection URL:\n\n    ```python\n    app.config[\"SQLALCHEMY_DATABASE_URI\"] = \"postgresql://todo_db_y0kz_user:DWYR4hmfKMXuebwU0gyIrv09AGhWNzSl@dpg-cqio0bogph6c738sehh0-a.oregon-postgres.render.com/todo_db_y0kz\"\n    ```\n\n2. Install the necessary dependencies:\n\n    ```bash\n    pipenv install psycopg2-binary\n    pipenv install python-dotenv\n    ```\n\n3. Run database migrations:\n\n    ```bash\n    flask db upgrade head\n    ```\n\n4. Create a `.env` file and add the database password as a variable:\n\n    ```env\n    POSTGRES_PWD=DWYR4hmfKMXuebwU0gyIrv09AGhWNzSl@dpg-cqio0bogph6c738sehh0-a.oregon-postgres.render.com/todo\n    ```\n\n5. Update your `app.py` to load environment variables:\n\n    ```python\n    from dotenv import load_dotenv\n    import os\n\n    load_dotenv()  # take environment variables from .env\n    postgres_pwd = os.getenv(\"POSTGRES_PWD\")  \n\n    app.config[\"SQLALCHEMY_DATABASE_URI\"] = f\"postgresql://todo_db_y0kz_user:{postgres_pwd}\"\n    ```\n\n### 3. Prepare for Deployment\n\n1. Install `gunicorn` to serve your Flask app:\n\n    ```bash\n    pipenv install gunicorn\n    ```\n\n2. Test your app locally with `gunicorn`:\n\n    ```bash\n    gunicorn app:app\n    ```\n\n3. Create a `requirements.txt` file:\n\n    ```bash\n    pip freeze \u003e requirements.txt\n    ```\n\n### 4. Deploy to Render\n\n1. Push your code to GitHub.\n2. Create a new web service on Render, connecting it to your GitHub repository.\n3. Set the start command to:\n\n    ```bash\n    gunicorn app:app\n    ```\n\n4. In the Render dashboard, go to the \"Environment\" tab and add the following environment variable:\n\n    ```plaintext\n    POSTGRES_PWD=DWYR4hmfKMXuebwU0gyIrv09AGhWNzSl@dpg-cqio0bogph6c738sehh0-a.oregon-postgres.render.com/todo\n    ```\n#### Deploying to render from github account\n ![Render Deployment](../assets/render.png)\n\n\n## b) Frontend Deployment on Netlify\n\n### 1. Update Configuration\n\n1. In your frontend code, update the `config.json` file with the server URL provided by Render:\n\n    ```json\n    {\n        \"server_url\": \"https://todoapp-fst3.onrender.com\"\n    }\n    ```\n\n### 2. Build and Deploy\n\n1. Run the build command to create the `dist` folder:\n\n    ```bash\n    npm run build\n    ```\n\n2. Log in to your Netlify account.\n3. Create a new site on Netlify.\n4. Drag and drop the contents of the `dist` folder into the Netlify drop zone.\n\n## Conclusion\n\nYour Todo App should now be successfully deployed with the backend on Render and the frontend on Netlify. If you encounter any issues, refer to the documentation of the respective services or seek help from their support channels.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraddames-tonui%2Ftodoapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraddames-tonui%2Ftodoapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraddames-tonui%2Ftodoapp/lists"}