{"id":25340996,"url":"https://github.com/aliramazanyildirim/todo-spark","last_synced_at":"2026-04-10T00:03:41.643Z","repository":{"id":270323467,"uuid":"909698044","full_name":"AliRamazanYildirim/todo-spark","owner":"AliRamazanYildirim","description":"ToDo-Spark is a modern task management application developed using React, Node.js and PostgreSQL. It features user authentication, task creation, editing, deletion and progress tracking. Security is provided by authentication with JWT and password hashing with bcrypt.","archived":false,"fork":false,"pushed_at":"2025-02-07T23:59:54.000Z","size":206,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T00:19:48.431Z","etag":null,"topics":["expressjs","javascript","jwt-authentication","nodejs","postgresql","reactjs","rest-api","vitejs"],"latest_commit_sha":null,"homepage":"http://localhost:5173/","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/AliRamazanYildirim.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":"2024-12-29T14:18:28.000Z","updated_at":"2025-02-07T23:59:57.000Z","dependencies_parsed_at":"2024-12-30T10:24:02.084Z","dependency_job_id":"68e1a11d-acb7-4a95-8fb7-3095fd92828e","html_url":"https://github.com/AliRamazanYildirim/todo-spark","commit_stats":null,"previous_names":["aliramazanyildirim/todo-spark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliRamazanYildirim%2Ftodo-spark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliRamazanYildirim%2Ftodo-spark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliRamazanYildirim%2Ftodo-spark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliRamazanYildirim%2Ftodo-spark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AliRamazanYildirim","download_url":"https://codeload.github.com/AliRamazanYildirim/todo-spark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247838440,"owners_count":21004580,"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":["expressjs","javascript","jwt-authentication","nodejs","postgresql","reactjs","rest-api","vitejs"],"created_at":"2025-02-14T08:18:14.577Z","updated_at":"2025-12-30T20:02:57.366Z","avatar_url":"https://github.com/AliRamazanYildirim.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ToDo-App\n\nEine moderne Aufgabenverwaltungsanwendung, entwickelt mit React, Node.js und PostgreSQL.\n\n## 🚀 Funktionen\n\n- Benutzerauthentifizierung (Registrierung und Anmeldung)\n- Aufgaben erstellen, bearbeiten und löschen\n- Fortschrittsanzeige für jede Aufgabe\n- Einfache und intuitive Benutzeroberfläche\n\n## 💻 Technologie-Stack\n\n- **Frontend:**\n  - React.js\n  - react-cookie für Cookie-Verwaltung\n  - Moderne UI-Komponenten\n  \n- **Backend:**\n  - Node.js mit Express\n  - PostgreSQL Datenbank\n  - JWT für Authentifizierung\n  - bcrypt für Passwort-Hashing\n\n## 🔧 Installation\n\n1. **Klonen Sie das Repository**\n  \n   ```bash  \n   git clone [git@github.com:AliRamazanYildirim/todo-spark.git]\n   ```\n\n2. **Installieren Sie die Abhängigkeiten**\n\n   ```bash\n   # Frontend-Abhängigkeiten\n   cd client\n   bun install\n\n   # Backend-Abhängigkeiten\n   cd server\n   bun install\n   ```\n\n3. **Backend-Abhängigkeiten**\n\n   Die folgenden Abhängigkeiten werden im Backend verwendet:\n\n    ```bash\n    bcrypt: ^5.1.1\n    cors: ^2.8.5\n    dotenv: ^16.4.7\n    express: ^4.21.2\n    jsonwebtoken: ^9.0.2\n    nanoid: ^5.0.9\n    nodemon: ^3.1.9\n    pg: ^8.13.1\n    postgres: ^3.4.5\n    uuid: ^11.0.3\n    ```\n\n4. **Fontend-Abhängigkeiten**\n\n   Die folgenden Abhängigkeiten werden im Backend verwendet:\n\n    ```bash\n    dotenv: ^16.4.7\n    react: ^19.0.0\n    react-cookie: ^7.2.2\n    react-dom: ^19.0.0\n    ```\n\n5. **Datenbank einrichten**\n  \n   ```sql\n   # Führen Sie die SQL-Befehle aus data.sql aus\n   CREATE DATABASE todoapp;\n\n   CREATE TABLE todos (\n       id VARCHAR(255) PRIMARY KEY,\n       user_email VARCHAR(255),\n       title VARCHAR(50),\n       progress INT,\n       date VARCHAR(300)\n   );\n\n   CREATE TABLE users (\n       email VARCHAR(255) PRIMARY KEY,\n       hashed_password VARCHAR(255)\n   );\n   ```\n\n6. **Umgebungsvariablen konfigurieren**\n\n   Erstellen Sie eine `.env`-Datei im Server-Verzeichnis:\n\n   ```env\n   DB_USER=ihr_datenbankbenutzer\n   DB_PASSWORD=ihr_datenbankpasswort\n   DB_HOST=ihr_datenbankhost\n   DB_PORT=ihr_datenbankport\n   DB_NAME=todoapp\n   PORT=8000\n   ```\n\n    Erstellen Sie eine .env-Datei im client-Verzeichnis und fügen Sie die folgenden Umgebungsvariablen hinzu:\n\n    ```env\n    VITE_APP_SERVER_URL=http://localhost:8000\n    ```\n\n## 🚦 Anwendung starten\n\n1. **Server starten**\n\n   ```bash\n   cd server\n   bun start\n   ```\n\n2. **Frontend starten**\n\n   ```bash\n   cd client\n   bun run dev\n   ```\n\n## 📝 Hauptkomponenten\n\n### Frontend\n\n- **Auth.jsx**: Verwaltet die Benutzerauthentifizierung\n- **ListHeader.jsx**: Kopfzeile der Aufgabenliste mit Hinzufügen- und Abmelde-Funktion\n- **ListItem.jsx**: Einzelne Aufgabenkomponente\n- **Modal.jsx**: Modal-Fenster zum Erstellen und Bearbeiten von Aufgaben\n- **ProgressBar.jsx**: Visualisierung des Aufgabenfortschritts\n- **TickIcon.jsx**: Checkbox-Icon für Aufgaben\n\n### Backend\n\n- **server.js**: Hauptserver-Datei mit allen API-Endpunkten\n- **db.js**: Datenbankverbindung und -konfiguration\n\n## 🔒 API-Endpunkte\n\n- `POST /signup`: Neue Benutzerregistrierung\n- `POST /login`: Benutzeranmeldung\n- `GET /todos/:userEmail`: Alle Aufgaben eines Benutzers abrufen\n- `POST /todos`: Neue Aufgabe erstellen\n- `PUT /todos/:id`: Aufgabe aktualisieren\n- `DELETE /todos/:id`: Aufgabe löschen\n\n## 🔐 Sicherheitsfunktionen\n\n- Passwörter werden mit bcrypt gehasht\n- JWT-Token-basierte Authentifizierung\n- Geschützte API-Endpunkte\n- Sichere Cookie-Verwaltung\n\n## 📌 Wichtige Hinweise\n\n- Stellen Sie sicher, dass PostgreSQL auf Ihrem System installiert und konfiguriert ist\n- Alle Umgebungsvariablen müssen korrekt gesetzt sein\n- Der Server muss auf Port 8000 laufen (oder einen anderen Port in der Umgebungskonfiguration angeben)\n- Frontend-Entwicklungsserver läuft standardmäßig auf Port 5173\n  \n## 📝 Lizenz\n\n🎓 MIT License\n\nCopyright (c) [2024] [Ali Ramazan Yildirim]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliramazanyildirim%2Ftodo-spark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faliramazanyildirim%2Ftodo-spark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliramazanyildirim%2Ftodo-spark/lists"}