Skip to content

alexvrv/test-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

test-app

Prerequisites

* Server setup *

  • Setup .env file with following settings:
    PORT=8080
    NODE_ENV=dev
    DATABASE_URL=postgres://postgres:POSTGRES_PASSWORD@localhost:5432/persons
    RUN_CRON=true
    
  • In .env file make sure to replace POSTGRESQL_PASSWORD with the password you set up on PostgreSQL installation
  • Install globally nodemon
    • npm install nodemon@2.0.7 -g
  • In the root folder
    • Execute the command npm install (all server dependencies should install successfully)
    • Execute the command nodemon
    • If everything is ok, you should see in the console the following message:
      λ nodemon
      [nodemon] 2.0.7
      [nodemon] to restart at any time, enter `rs`
      [nodemon] watching path(s): *.*
      [nodemon] watching extensions: js,mjs,json
      [nodemon] starting `node ./server/app.js`
      Database connection successfully.
      Listening on port: 8080, env: dev

*Client setup *

  • Install angular cli globally
    • npm install -g @angular/cli
  • Navigate to project/client
    • Execute the command npm install (all client dependencies should install successfully)
    • In the same client folder, execute the command npm start
    • If everything is ok, you should see in the console the following message:
      λ npm start
    
      > test-app@0.0.0 start C:\Proiecte\test-app\client
      > ng serve
    
       Browser application bundle generation complete.
    
      Initial Chunk Files   | Names         |      Size
      vendor.js             | vendor        |   4.93 MB
      styles.css, styles.js | styles        | 401.44 kB
      polyfills.js          | polyfills     | 339.13 kB
      main.js               | main          |  63.41 kB
      runtime.js            | runtime       |   7.07 kB
    
                            | Initial Total |   5.72 MB
    
      Build at: 2021-11-05T12:55:50.984Z - Hash: 5286c543f6d25b2c - Time: 5989ms
    
      ** Angular Live Development Server is listening on localhost:3000, open your browser on http://localhost:3000/ **
    
    
       Compiled successfully.

Cerintele temei

FRONT END

  1. Acceași funcționalitate ca în aplicația creată
  2. Se vor crea in header 2 taguri html - Persoane, Mașini
  3. Se vor crea 2 componente în folderul components Persoane, Mașini
  4. Fiecare link trebuie să folosească routerLink pentru a ajunge la componenta respectivă
  5. Fiecare componentă va conține următoarele
  • Titlul componentei
  • Tabelul cu informații
  • Butonul de adaugă
  • Modalul pentru adăugare / modificare

Componenta persoane

  1. Un tabel ce va conține următoarele coloane
  • Număr curent
  • Nume / prenume
  • CNP
  • Vârsta
  • Lista mașinilor aflate în proprietate
    • Denumire marcă / denumire model
    • Anul fabricației
    • Capacitatea cilindrică
    • Taxa de impozit
  • 2 iconițe pe tabel pentru modificare / ștergere
  • Modificarea persoanei se va realiza pe același modal
  • După ce persoana a fost ștearsă din baza de data, tabelul trebuie reîmprospătat
  1. La apăsarea butonului adaugă se va deschide modalul ce va conține următoarele
  • Câmpuri
    • Nume* - string, maxlength 255
    • Prenume* - string, maxlength 255
    • CNP* - string, maxlength 13
    • Vârsta* - integer, maxlength 3
    • Select multiplu (ng-select multiple) pentru mașini
  • Funcționalitate
    • Vârsta va fi calculată automat din CNP
    • Câmpurile sunt obligatorii
    • Validare și afișare mesaj cu denumirea câmpului ce nu a fost completat
    • La apăsarea butonului adaugă, persoana va fi salvată în baza de date
    • La apăsarea butonului renunță, modalul se va inchide fără a fi făcută salvarea
    • După ce persoana a fost salvată, tabelul trebuie să conțină noua persoană
    • Filtrare pe tabel (sa se pastreze datele liniilor filtrate)

Componenta mașini

  1. Un tabel ce va conține următoarele coloane
  • Număr curent
  • Denumire marcă
  • Denumire model
  • Anul fabricației
  • Capacitatea cilindrică
  • Taxa de impozit
  • 2 iconițe pe tabel pentru modificare / ștergere
  • Modificarea mașinii se va realiza pe același modal
  • După ce mașina a fost ștearsă din baza de data, tabelul trebuie reîmprospătat
  1. La apăsarea butonului adaugă se va deschide modalul ce va conține următoarele
  • Câmpuri
    • Denumire marcă - string, maxlength 255
    • Denumire model - string, maxlength 255
    • Anul fabricației - integer, maxlength 4
    • Capacitatea cilindrică - integer, maxlength 4
    • Taxa de impozit - integer, maxlength 4
  • Funcționalitate
    • Taxa de impozit va fi calculată conform calcului
      • capacitatea cilindrică < 1500 = 50 lei
      • capacitatea cilindrică > 1500 < 2000 = 100 lei
      • capacitatea cilindrică > 2000 = 200 lei
    • Câmpurile sunt obligatorii
    • Validare și afișare mesaj cu denumirea câmpului ce nu a fost completat
    • La apăsarea butonului adaugă, mașina va fi salvată în baza de date
    • La apăsarea butonului renunță, modalul se va inchide fără a fi făcută salvarea
    • După ce mașina a fost salvată, tabelul trebuie să conțină noua mașină
    • Filtrare pe tabel (sa se pastreze datele liniilor filtrate)

BACK END

  1. Create / update / find / findAll / destroy în tabelul Person
  2. Create / update / find / findAll / destroy în tabelul Car
  3. Creare tabel de joncțiune "Junction" cu următoarele coloane
  • id_person, id_car
  1. La ștergerea unei persoane, se vor șterge toate liniile din tabelul de joncțiune aferente persoanei șterse
  2. La ștergerea unei mașini, se vor șterge toate liniile din tabelul de joncțiune aferente mașinii șterse
  3. La ștergerea unei mașini din modalul de persoană, se va șterge doar lini din joncțiune aferentă persoanei

About

Test app for new possible employees

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published