Skip to content

Commit 329a03e

Browse files
author
Vladimir Damov
committed
adding software technologies README.md
1 parent b880898 commit 329a03e

File tree

9 files changed

+148
-0
lines changed

9 files changed

+148
-0
lines changed
-199 KB
Binary file not shown.
-198 KB
Binary file not shown.
-199 KB
Binary file not shown.
-199 KB
Binary file not shown.
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# Practical Exam – Cat Shop
2+
3+
You have the task to create an application for cats. The application should hold **cats**, which are the main app **entities**. The app is called **CatShop**.
4+
5+
The functionality of the application should support **creating**, **listing, editing**, **deleting** cats.
6+
7+
The application should **persist** the data into a MySQL **database**.
8+
9+
## Overview
10+
11+
Your application should be built on **each one **of the **following technologies**:
12+
13+
### JavaScript
14+
15+
* **NodeJS **+** ExpressJS **frameworks
16+
17+
* **Handlebars.js **view engine
18+
19+
* **Sequelize **ORM
20+
21+
* **MySQL **database
22+
23+
### PHP
24+
25+
* **Symfony **framework
26+
27+
* **Twig **view engine
28+
29+
* **Doctrine** ORM
30+
31+
* **MySQL **database
32+
33+
### Java
34+
35+
* **Spring **framework (**Spring MVC** + **Spring Boot** + **Spring Data**)
36+
37+
* **Thymeleaf **view engine
38+
39+
* **JPA **/ **Hibernate ORM **+** Spring Data **data access
40+
41+
* **MySQL **database
42+
43+
### C#
44+
45+
* **ASP.NET Core **framework (**ASP.NET MVC** + **Entity Framework Core**)
46+
47+
* **Razor **view engine
48+
49+
* **Entity Framework Core **ORM
50+
51+
* **MySQL **database
52+
53+
## Data Model
54+
55+
The **Cat** entity holds **4 properties**:
56+
57+
* **id** – technology-dependent identifier (**ObjectID** for JavaScript, **int** for all other technologies)
58+
59+
* **name** – non-empty text
60+
61+
* **nickname**** **– non-empty text
62+
63+
* **price** – double
64+
65+
## Skeletons
66+
67+
You will be given the applications’ **skeletons**, which holds about **90%** of the logic. You’ll be given some **files** (**controllers**, **models** etc.). The files will have** partially implemented logic**, so you’ll need to write some code for the application to **function properly**.
68+
69+
The application’s views will be given to you fully implemented. You only need to include them in your business logic.
70+
71+
**Each technology** will have its **own skeleton**, and the **different** **skeletons** may **differ** in **terms** of **what is given to you** and **what is to be implemented**.
72+
73+
Everything that has been given to you inside the skeleton is **correctly implemented **and if you write your code **correctly**, the application should work just fine. You are free to change anything in the Skeleton on your account.
74+
75+
## User Interface
76+
77+
This is the user interface or how the application’s pages should look in their final form (fully implemented). You have several pages, described below:
78+
79+
### Index Page
80+
81+
#### Route: **"/"**
82+
83+
Displays **all** the **cats** from the database with** options **to **edit **or **delete** them.
84+
85+
![image alt text](../images/image_0.png)
86+
87+
### Create Page
88+
89+
#### Route: **"/create"**
90+
91+
![image alt text](../images/image_1.png)
92+
93+
### Edit Page
94+
95+
#### Route: **"/edit/{id}"**
96+
97+
![image alt text](../images/image_2.png)
98+
99+
### Delete Page
100+
101+
#### Route: **"/delete/{id}"**
102+
103+
![image alt text](../images/image_3.png)
104+
105+
## Problem
106+
107+
As you can see the different pages are on different routes. Most of the routing logic will be given to you in the **Skeleton**, but you should make sure that the application **works properly**.
108+
109+
Implement the "**CatShop" app** using all the above described **4 technologies**.
110+
111+
## Setup
112+
113+
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:
114+
115+
### PHP and Symfony
116+
117+
1. Go into the **root directory** of the project (where the **bin** folder resides)
118+
119+
2. Make sure you’ve started your **MySQL server** (either from **XAMPP** or standalone)
120+
121+
3. Open a **shell** / **command prompt** /** PowerShell** window in the **root directory**: [Shift] + [Right click][Open command window here]
122+
123+
4. Enter the "**php composer.phar install**" command to restore its **Composer dependencies** (described in **composer.json**)
124+
125+
5. Enter the "**php bin/console doctrine:database:create --if-not-exists**" command
126+
127+
6. Done!
128+
129+
### JavaScript and Node.js
130+
131+
1. Go into the **root directory** of the project (where the **bin** folder resides)
132+
133+
2. Open a **shell** / **command prompt** /** PowerShell** window in the **root directory**: [Shift] + [Right click][Open command window here]
134+
135+
3. Enter the "**npm install**" command to restore its **Node.js dependencies** (described in **package.json**)
136+
137+
4. Create the database needed manually, using the command prompt or your database GUI.
138+
139+
5. Done!
140+
141+
### C# and ASP.NET
142+
143+
The C# project will automatically resolve its **NuGet dependencies** (described in **packages.config**) using the NuGet package restore when the project is built.
144+
145+
### Java and Spring MVC
146+
147+
The Java project will automatically resolve its **Maven dependencies** (described in **pom.xml**) when the project is built.
148+
24.7 KB
Loading
25.8 KB
Loading
40.3 KB
Loading
40.2 KB
Loading

0 commit comments

Comments
 (0)