TODO List (in C#, Java, JS and PHP) - Exam Preparation for the Tech Module @ SoftUni (August 2017)
You are assigned to create a Simple TODO List App. The application should hold tasks, which are the main app entities. The functionality of the app should support creating, listing, editing and deleting tasks. The application should persist the data into a database.
Your application should be built on each one of the following technologies:
- Symfony framework
- Twig view engine
- Doctrine ORM
- MySQL database
- NodeJS + ExpressJS frameworks
- Handlebars.js view engine
- Mongoose data access
- MongoDB database
- Spring framework (Spring MVC + Spring Boot + Spring Data)
- Thymeleaf view engine
- JPA / Hibernate ORM + Spring Data data access
- MySQL database
- ASP.NET framework (ASP.NET MVC + Entity Framework)
- Razor view engine
- Entity Framework ORM
- MSSQL Server database
The Task
entity holds 3 properties:
id
- technology-dependent identifier (ObjectID
for JavaScript,int
for all other technologies)title
- nonempty textcomments
- nonempty text
This is the user interface should consists of the following pages (under the designated routes):
Route: /
(GET)
List all tasks.
Route: /create
(GET and POST)
GET
shows a form to create a task. POST
saves the form data into the database as new task.
Route: /delete/{id}
(GET and POST)
GET
shows a form to delete a certain task. POST
confirms deleting a task and removes the task from the database.
Route: /edit/{id}
(GET and POST)
GET
shows a form to edit a certain task. POST
confirms editing a task and modifies the task in the database.
Implement the TODO List App on all mentioned 4 technology stacks.
Before 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:
- Go into the root directory of the project (where the bin folder resides)
- Make sure you’ve started your MySQL server (either from XAMPP or standalone)
- Open a shell / command prompt / PowerShell window in that directory (shift + right click --> open command window here)
- Enter the
php composer.phar install
command to restore its Composer dependencies (described incomposer.json
) - Enter the
php bin/console doctrine:database:create
command - Done!
- Go into the root directory of the project (where the bin folder resides)
- Make sure you’ve started your MongoDB server:
mongod.exe --dbpath path/to/db/directory
- Open a shell / command prompt / PowerShell window in the root directory (shift + right click --> open command window here)
- Enter the
npm install
command to restore its Node.js dependencies (described inpackage.json
) - Done!
The C# project will automatically resolve its NuGet dependencies (described in packages.config
) using the NuGet package restore when the project is built.
The Java project will automatically resolve its Maven dependencies (described in pom.xml
) when the project is built.