Semester Abroad Lovely Semester Application
INSA Toulouse ©2018-2019
A platform for INSA Toulouse organisation for student's study abroad semester.
- Getting started
- Project convention
- Model architecture
- Network topology
- Documentation
- Authors
- Java jdk 1.8
- Node js
TODO
To run the user interface, first access to the sub-project directory:
cd salsa-frontend
Then update dependencies and launch it up
salsa-frontend > npm install
salsa-frontend > ng serve --o
Attention if you wish to launch it from project root: (untested)
ng serve --prod --base-href=../salsa-frontend/
- Choose New > Project from Version Control > Git > Fill with URL of this Git
- Wait for loading
- Install Lombok plugin if you have error with
log
somewhere in the code. - Click Edit Configuration (up ahead) > Click the + in the up left > Spring Boot > Fill the Name, in Main class Choose SalsaWebappApplication.java
- Install PlantUML if you want to work with conception.
- Right click on project > New > Edit Files Templates.. >
Click on + under tab Files > Fill in Name:
UML Salsa sequence
, fill the following code in template:
@startuml
hide footbox
title Service: functionality
actor Actor
participant Platform
entity Service
Actor -> Platform : POST(params)
activate Platform
alt try
Platform -> Service : do(Instance instance)
activate Service
Service -> Platform : return Result result
deactivate Service
Platform -> User : HTTP/OK, msg: result
else catch Exception e
Platform -> User: HTTP/<code>, msg: e
deactivate Plarform
end
@enduml
TODO
- The core application consists of 2 modules: salsa-webapp and salsa-model
- The client front-end (GUI) is in sub-project salsa-front
- All other modules are webservice
- The sequence diagrams (PlantUML) are in conception
- Consisting of module: Main application's name prefixed with
salsa-*
, web service prefixed withws-*
- All Controller class suffixed with
*Controller
- All service class suffixed with
*Service
- So on with
*Repository
,*Exception
,*Advice
- For plantUML files:
<service name>_<functionality>.puml
-
In salsa-model:
- package
fr.insa.soa.model.entities
contains entities. - package
fr.insa.soa.model.exception
relies on exception when finding in database. - package
fr.insa.soa.model.repository
has interface (the code is autogenerated by Spring).
- package
-
In salsa-webapp:
- package
fr.insa.soa.advisor
translates*Exception
fromfr.insa.soa.model.exception
to Http response. - package
fr.insa.soa.consumer
connect with outer (Database, Webservice, ...) - package
fr.insa.soa.controller
has controllers and business logic.
- package
TODO
TODO
- front-end port: 80
- webapp port : 9000
- ws-authentication port: 9001
- ws-content port: 9002
- services ports : > 9000
TODO
- Duc Hau NGUYEN
- Thien Nhat VAN
- Fatima LALAOI
- Constantin DOGGYDOG
- Adrien GONZALEZ
Put the code into template :
@startuml
hide footbox
title Service: functionality
actor Actor
participant Platform
entity Service
Actor -> Platform : POST(params)
activate Platform
alt try
Platform -> Service : do(Instance instance)
activate Service
Service -> Platform : return Result result
deactivate Service
Platform -> User : HTTP/OK, msg: result
else catch Exception e
Platform -> User: HTTP/<code>, msg: e
deactivate Platform
end
@enduml
-
Composite key problem: Example in Speciality Entity class
-
Attention Please keep the
.iml
files for those who work with Jetbrains IDE. -
Other problems ...