{"id":21478000,"url":"https://github.com/krucsodaniel/task-manager","last_synced_at":"2026-04-09T13:55:34.322Z","repository":{"id":157129755,"uuid":"633309970","full_name":"krucsodaniel/Task-Manager","owner":"krucsodaniel","description":"Fullstack API project using MEAN stack.","archived":false,"fork":false,"pushed_at":"2023-04-27T08:37:05.000Z","size":8578,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T17:56:20.518Z","etag":null,"topics":["angular","bootstrap5","docker","expressjs","jest","mongodb","mongoose","nodejs"],"latest_commit_sha":null,"homepage":"","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/krucsodaniel.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-04-27T08:18:52.000Z","updated_at":"2024-10-24T08:55:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c5c9e62-dcea-4855-aa7a-32978bf9136b","html_url":"https://github.com/krucsodaniel/Task-Manager","commit_stats":null,"previous_names":["krucsodaniel/task-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krucsodaniel%2FTask-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krucsodaniel%2FTask-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krucsodaniel%2FTask-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krucsodaniel%2FTask-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krucsodaniel","download_url":"https://codeload.github.com/krucsodaniel/Task-Manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243997162,"owners_count":20380981,"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":["angular","bootstrap5","docker","expressjs","jest","mongodb","mongoose","nodejs"],"created_at":"2024-11-23T11:16:13.740Z","updated_at":"2025-10-18T05:52:41.187Z","avatar_url":"https://github.com/krucsodaniel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Manager\n\nA projekt egy webalapú feladatkezelő felület. A felhasználók regisztráció után egy saját felületen kezelhetik a listáikat és a hozzájuk tartozó feladatokat. Az alkalmazás lehetővé teszi a felhasználók számára, hogy rendszerezzék és nyomon kövessék a feladataikat, megkönnyítve ezzel a napi munkafolyamatok irányítását. A platform segítségével a felhasználók szervezettek maradhatnak és összpontosíthatnak a feladataikra, növelve ezzel termelékenységüket és hatékonyságukat. A platform előnyös lehet olyan egyének vagy csapatok számára, akik szeretnének a feladataik élén maradni és hatékonyan kezelni a munkaterhelésüket.\n\n# Technikai követelmények, előírások\n-\tAz alkalmazás Angular-alapú\n-\tA dizájnért a Bootstrap és az SCSS felel\n-\tAdatbázis: MongoDB (NoSQL)\n-\tNodeJS: saját API szolgálja ki a frontendet\n-\tMinden API controllerhez egy JEST unit teszt kapcsolódik\n-   Minden végponthoz egy integrációs teszt tartozik\n-\tAz API-hoz Swagger alapú dokumentáció tartozik\n-\tA felület bizonyos oldalai csak belépés után elérhetőek\n-\tAz alkalmazás dockerizálva van, konténerből futtatható\n\n# Az alkalmazás előkészítése\n- A célgépre le kell klónozni az adott GitHub repository tartalmát:\nhttps://github.com/krucsodaniel/taskManager.git\n    - Github felületén a zöld \"Code\" gombra kattintva lehetőségünk van kimásolni a linket\n    - Tetszőleges terminál nyitása, dedikált mappába benavigálás\n    - Az alábbi parancs kiadása\n     ```git clone https://github.com/krucsodaniel/taskManager.git```\n    - Az alkalmazás MongoDB adatbázissal dolgozik, az ehhez szükséges kulcsok, változók végett kérem keressen e-mailben a daniel.krucso21@gmail.com e-mail címen.\n\n\n## Az alkalmazás előkészítése fejlesztéshez\n- Telepíteni kell az alkalmazás függőségeit:\n    - Backend\n        - A terminálon be kell lépni a /api mappába és futtatni az npm i parancsot\n        - Terminálban ```nodemon .\\src\\app.js``` parancs, backend alkalmazás indítása (A Nodemon folyamatosan nyomonköveti a Backend oldali kódban történő változtatásokat)\n    - Frontend\n        - A terminálon be kell lépni a /task-manager mappába és futtatni az npm i parancsot\n        - Terminálban ```ng s -o``` parancs, a frontend alkalmazás indítása\n- (Ha még nincsen fenn a célgépen, akkor telepíteni kell az Angular keretrendszert az npmi i -g @angular/cli paranccsal)\n\n# Az alkalmazás indítása konténerizálva\n- A megadott Docker containerek indítása és inicializálása compose segítségével:\n    - \u003ca href=\"https://docs.docker.com/engine/install/\" target=\"_blank\"\u003eDocker Desktop\u003c/a\u003e szoftver letöltése, telepítése \n    - Docker Desktop alkalmazás elindítása\n    - A /api mappába belépve a terminálban ki kell adni az ```npm run docker-compose:up``` parancsot\n    - Az alkalmazás a http://loclahost:3000/ lesz elérhető\n- A Docker konténerek megállítása\n    - A ```ctrl + c``` billentyűkombináció segítségével meg tudjuk állítani a Docker terminált\n    - A /api könyvtáron belül a terminálban a ```docker-compose down``` parancs kiadása. Ez leállítja és eltávolítja a docker-compose fájl által létrehozott összes konténert, hálózatot és kötetet.\n\n    \n# Tesztek futtatása\n- A /api mappába belépve van lehetőség a teszteket futtatni.\n- Unit tesztek futtatása előtt a /api mappában szükséges az ``` npm i``` parancs kiadása\n- Integrációs tesztek futtatása előtt a /api mappában szükséges az ```npm i ``` majd az ```npm run docker-compose:up``` parancs kiadása (Az integrációs tesztek a konténerből futnak)\n    - Unit tesztek\n        - Lists tesztek: Terminálban ```npm run test:lists``` parancs futtatása\n        - Tasks tesztek: Terminálban ```npm run test:tasks``` parancs futtatása\n        - Users tesztek: Terminálban ```npm run test:users``` parancs futtatása\n    - Integrációs tesztek\n        - Integrációs tesztek: Terminálban ```npm run test:supertest``` parancs futtatása\n    - Összes teszt futtatása egyszerre\n        - Összes teszt: Terminálban ```npm run test``` parancs futtatása\n\n# API végpontok\n| Végpont | Metódus | Leírás |\n|----------|--------|-------------|\n| `/api/users` | POST | Felhasználó regisztrálás |\n| `/api/login` | POST | Felhasználó bejelentkezés |\n| `/api/lists` | POST | Új Lista létrehozása |\n| `/api/:ownerId` | GET | User ID alapján összes lista lekérdezése |\n| `/api/:listId` | DELETE | Lista törlése ID alapján |\n| `/api/:listId/tasks` | GET | Összes Task lekérdezése adott List ID alapján |\n| `/api/:listId/tasks` | POST | Új Task hozzáadása adott List ID listához |\n| `/api/:listId/tasks/:taskId` | PUT | Adott Listában található Task módosítása ID alapján |\n| `/api/:listId/tasks/:taskId` | DELETE | Adott Listában található Task törlése ID alapján |\n\n### **Swagger dokumentáció**\nlocalhost:3000/api/api-docs\n\n# Entitások\n\n## User\nA regisztrált felhasználó. Készíthet új List-et, törölheti azt, valamint hozzáadhat, módosíthat és törölhet Task-ot.\n\nTárolt adatok:\n- E-mail\n- Jelszó\n- Becenév\n- Listák (ID lista)\n\n## List\nA felhasználó által létrehozott lista. Tartalmazza a hozzá tartozó Task-okat.\n\nTárolt adatok:\n- Cím\n- Tulajdonos (User ID alapján)\n- Taskok (ID lista)\n\n## Task\nA felhasználó által létrehozott feladat.\n\nTárolt adatok:\n- Cím\n- Lista ID (List ID alapján)\n- Állapot (elkészült/nem készült el)\n\n# User story lista, feladatok\nA felhasználó regisztrál és/vagy belép az alkalmazásba\n- Regisztrációs képernyő megvalósítása -\u003e API regisztrációs végpont implementálása (POST api/users)\n- Login képernyő megvalósítása -\u003e API login végpont implementálása (POST api/login)\n- JWT autentikáció implementáció, kliens oldali hozzáférés szabályozása autentikáció alapján\n\nA felhasználó új listát ad hozzá\n- Új lista hozzáadása az \"Add List\" gomb megnyomásával, Lista nevének megadása (POST api/lists)\n\nA felhasználó új Task-ot ad egy listához\n- Új Task hozzáadása az \"Add Task\" gomb megnyomásával, Task nevének megadása (POST api/:listId/tasks) [Ahhoz, hogy új Taskot hozzon létre, szükséges kiválasztani egy listát]\n\nA felhasználó elvégez egy Task-ot\n- A felhasználó a Task-ra kattintva \"completed\" státuszra teheti a Taskot. Ilyenkor a Task színe zöldre vált. Ha ismét rákattint, a \"completed\" státusz eltűnik róla, a Task visszakapja az eredeti fehér színét. (PUT api/:listId/tasks/:taskId)\n\nA felhasználó töröl egy Task-ot\n- A felhasználó a Task-on található piros törlés gomb segítségével törölhet Taskot. (DELETE api/:listId/tasks/:taskId)\n\nA felhasználó kilép az alkalmazásból\n- A felhasználó a jobb felső sarokban található \"Logout\" gombra kattintva kilép az alkalmazásból, átirányul a Login képernyőre\n\n# Képernyők, User journey\n\n## *Autentikáció nélkül* elérhető oldalak\n### **Főoldal**\nAz alkalmazás megnyitását követően a felhasználó a Főoldal-al találkozik először.\nA felhasználó beírja a weboldal URL-címét a böngészőjébe, és a kezdőlapon landol.\nÁtfutja az oldalt, és egy világos és tömör leírást lát a szolgáltatásról, valamint egy vizuálisan vonzó képet, amely a terméket reprezentálja.\nElolvassa a szoltáltatás leírást és megnézi a képet, hogy eldöntse, a szolgáltatás megfelel-e az igényeinek.\nHa érdekli a termék, akkor a \"Get started\" gombra kattintva átnavigál az Árak oldalra.\n### **Árak**\nA felhasználó a weboldal Árak oldalára navigál, hogy megtalálja az igényeinek megfelelő csomagot.\nHárom árképzési lehetőséget lát: Starter, Premium és Pro. Jelenleg csak a Starter csomag érhető el.\nÁtnézi az árképzés részleteit, és úgy dönt, hogy az Starter csomag megfelel az igényeinek.\nRákattint az Starter csomagra, és a Regisztráció oldalra navigál, ahol létrehozhat egy fiókot.\n\n### **Regisztráció**\nA felhasználó a Regisztráció oldalára navigál, hogy felhasználói fiókat hozzon létre.\nMegadja az e-mail címét, és létrehoz egy jelszót és egy Becenevet, hogy regisztrálhasson az Starter csomagra.\nA rendszer jelzi a sikeres regisztrációt, a Login gombra kattintva a felhasználó átnavigál a Bejelentkezés felületre.\n\n### **Bejelentkezés**\nA felhasználó a weboldal bejelentkezési oldalára navigál, hogy hozzáférjen a fiókjához.\nLát egy bejelentkezési űrlapot, amely az e-mail címét és a jelszavát kéri.\nBeírja az e-mail címét és a jelszavát, majd a \"Login\" gombra kattint.\nA weboldal hitelesíti az e-mail címét és a jelszavát, és átirányítja őt a fiókja kezdőlapjára.\n\n### **404 - Az oldal nem található**\nA felhasználó a weboldalon böngészik, és egy nem létező oldalra mutató linkre navigál.\nEgy 404-es hibaoldalra irányítják át, amely elmagyarázza, hogy az oldal nem található.\nA 404-es hibaoldal egyértelmű üzenetet tartalmaz arról, hogy a kért oldal nem létezik, valamint egy linket a weboldal kezdőlapjára.\nA felhasználó rákattint a \"Home page\" gombra, és átirányítják a honlap főoldalára.\nTovább böngészi a weboldalt, és megtalálja a keresett információt.\n\n## *Autentikációval* elérhető oldalak\n### **Dashboard**\nA felhasználó bejelentkezik a weboldalra, és átirányítják a Dashboard oldalra.\nA Dashboard oldalon megjelenik a meglévő listák listája és egy űrlap új lista felvételéhez.\n\n### **Lista műveletek**\nA felhasználó hozzáad egy új listát az \"Add List\" gomb segítségével, és a lista megjelenik a Dashboardon.\nA felhasználó rákattint az újonnan hozzáadott listára, ami megjeleníti a listához tartozó Task-okat.\nA felhasználó a lista neve mellett található \"X\"-re kattintva törli a listát. A lista törlése az összes hozzá tartozó Task-ot szintén törli.\n\n### **Task műveletek**\nA felhasználó új feladatot ad hozzá a listához az \"Add Task\" gomb segítségével. Új Task hozzáadása csak akkor lehetséges, ha ki van választva egy lista.\nA feladatot katitntással befejezettnek jelöli.\nA felhasználó a piros törlés gombbal törli a feladatot a listáról, és az eltűnik a lista oldaláról.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrucsodaniel%2Ftask-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrucsodaniel%2Ftask-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrucsodaniel%2Ftask-manager/lists"}