{"id":14977561,"url":"https://github.com/nakov/todo-list-tech-module","last_synced_at":"2025-10-28T04:31:48.373Z","repository":{"id":23949842,"uuid":"100234610","full_name":"nakov/TODO-List-Tech-Module","owner":"nakov","description":"TODO List (in C#, Java, JS and PHP) - Exam Preparation for the Tech Module @ SoftUni (August 2017)","archived":false,"fork":false,"pushed_at":"2023-05-31T18:37:42.000Z","size":634,"stargazers_count":14,"open_issues_count":3,"forks_count":10,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-08T15:48:50.346Z","etag":null,"topics":["asp-net-mvc","csharp","express-js","java","javascript","mongodb","mysql","node-js","php","razor","spring-data-jpa","spring-framework","sql-server","symfony","thymeleaf","twig"],"latest_commit_sha":null,"homepage":"https://softuni.org","language":"PHP","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/nakov.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":"2017-08-14T06:17:35.000Z","updated_at":"2024-12-31T01:25:15.000Z","dependencies_parsed_at":"2024-09-18T22:05:36.910Z","dependency_job_id":"229511e2-b69e-441c-936a-946bdd812565","html_url":"https://github.com/nakov/TODO-List-Tech-Module","commit_stats":{"total_commits":26,"total_committers":2,"mean_commits":13.0,"dds":"0.15384615384615385","last_synced_commit":"02725a6d797ffd2225cf4223f87581dd42f4b0b0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nakov/TODO-List-Tech-Module","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FTODO-List-Tech-Module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FTODO-List-Tech-Module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FTODO-List-Tech-Module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FTODO-List-Tech-Module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nakov","download_url":"https://codeload.github.com/nakov/TODO-List-Tech-Module/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakov%2FTODO-List-Tech-Module/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281386564,"owners_count":26492014,"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-28T02:00:06.022Z","response_time":60,"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":["asp-net-mvc","csharp","express-js","java","javascript","mongodb","mysql","node-js","php","razor","spring-data-jpa","spring-framework","sql-server","symfony","thymeleaf","twig"],"created_at":"2024-09-24T13:55:54.686Z","updated_at":"2025-10-28T04:31:46.973Z","avatar_url":"https://github.com/nakov.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TODO-List-Tech-Module\nTODO List (in C#, Java, JS and PHP) - Exam Preparation for the Tech Module @ SoftUni (August 2017)\n\nYou are assigned to create a **Simple TODO List App**. The application should hold **tasks**, which are the main app entities.\nThe functionality of the app should support creating, listing, editing and deleting tasks. The application should persist the data into a database.\n\n## Overview\nYour application should be built on each one of the following technologies:\n\n### PHP\n* **Symfony** framework\n* **Twig** view engine\n* **Doctrine** ORM\n* **MySQL** database\n\n### JavaScript\n* **NodeJS** + **ExpressJS** frameworks\n* **Handlebars.js** view engine\n* **Mongoose** data access\n* **MongoDB** database\n\n### Java\n* **Spring** framework (Spring MVC + Spring Boot + Spring Data)\n* **Thymeleaf** view engine\n* **JPA** / **Hibernate** ORM + **Spring Data** data access\n* **MySQL** database\n\n### C#\n* **ASP.NET** framework (ASP.NET MVC + Entity Framework)\n* **Razor** view engine\n* **Entity Framework** ORM\n* **MSSQL Server** database\n\n## Data Model\nThe `Task` entity holds 3 properties:\n* `id` - technology-dependent identifier (`ObjectID` for JavaScript, `int` for all other technologies)\n* `title` - nonempty text\n* `comments` - nonempty text\n\n## User Interface\nThis is the user interface should consists of the following pages (under the designated routes):\n\n### Index Page\nRoute: `/` (GET)\n\nList all tasks.\n \n### Create Page\nRoute: `/create` (GET and POST)\n\n`GET` shows a form to create a task. `POST` saves the form data into the database as new task.\n \n### Delete Page\nRoute: `/delete/{id}` (GET and POST)\n\n`GET` shows a form to delete a certain task. `POST` confirms deleting a task and removes the task from the database.\n\n### Edit Page\nRoute: `/edit/{id}` (GET and POST)\n\n`GET` shows a form to edit a certain task. `POST` confirms editing a task and modifies the task in the database.\n \n## Languages and Technologies\nImplement the **TODO List App** on all mentioned 4 technology stacks.\n\n## Setup\nBefore you start working, make sure you download all the dependencies (packages) required for each technology and set up the databases! Below are instructions on how to do this:\n\n### PHP and Symfony\n1. Go into the root directory of the project (where the bin folder resides)\n2. Make sure you’ve started your MySQL server (either from XAMPP or standalone)\n3. Open a shell / command prompt / PowerShell window in that directory (shift + right click --\u003e open command window here)\n4. Enter the `php composer.phar install` command to restore its **Composer** dependencies (described in `composer.json`)\n5. Enter the `php bin/console doctrine:database:create` command\n6. Done!\n\n### JavaScript and Node.js\n1. Go into the root directory of the project (where the bin folder resides)\n2. Make sure you’ve started your MongoDB server: `mongod.exe --dbpath path/to/db/directory`\n3. Open a shell / command prompt / PowerShell window in the root directory (shift + right click --\u003e open command window here)\n4. Enter the `npm install` command to restore its **Node.js** dependencies (described in `package.json`)\n5. Done!\n\n### C# and ASP.NET MVC\nThe C# project will automatically resolve its **NuGet** dependencies (described in `packages.config`) using the NuGet package restore when the project is built.\n\n### Java and Spring MVC\nThe Java project will automatically resolve its **Maven** dependencies (described in `pom.xml`) when the project is built.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnakov%2Ftodo-list-tech-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnakov%2Ftodo-list-tech-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnakov%2Ftodo-list-tech-module/lists"}