Skip to content
Snippets Groups Projects
Commit cb2b819d authored by Alexandre Vanini's avatar Alexandre Vanini
Browse files

[README]

parent 79f9bb5f
No related branches found
No related tags found
No related merge requests found
......@@ -9,63 +9,28 @@
<p>DOCKER-COMPOSE</p>
<p>ANGULAR CLI</p>
### Temporary users ids :
### Temporary user ids :
| Username | Password | Privileges |
|----------|----------|------------|
| shodai | admin | shodai |
<p>When connected to shodai account, you can generate tokens to create further sensei</p>
<p>When connected to shodai account, you can generate tokens to create further sensei in "Sponsorship" (location : left nav bar)</p>
<p>All created account without token will automatically be ranked as "monji"</p>
<b>Users privileges hierarchy</b>
<p>shodai>sensei>monji</p>
#### Client
>./client/
```
npm install
ng serve --open
```
#### Gateway
>./gateway/
```
mvn package
mvn exec:java
```
#### Compilateur
>./compilation/
```
mvn package
mvn exec:java
```
##### Create java container
>./compilation/docker/java
```
docker build . -t java:1.0
```
##### Create python container
>./compilation/docker/python
```
docker build . -t python:1.0
```
<p>shodai>sensei>monji</p>
#### MongoDB
#### 1. Mongo Database
##### Create container
##### 1.2 Create container
>./mongodb/
```
docker-compose up -d
```
##### Create user
##### 1.3 Create user
>./mongodb/
```
......@@ -76,6 +41,8 @@ password : example
insert the following command :
```
use DojoHepia
db.createUser(
{
user: "shodai",
......@@ -87,7 +54,7 @@ db.createUser(
)
```
##### Importing data
##### (optional) Importing data
<p>If you want to popularize the database with programs and katas, you can insert the following files in the mongo db database</p>
>./mongodb/data/programs
......@@ -107,6 +74,38 @@ db.Programs.insertMany(<programs-copied-data>);
db.ProgramsSubscription.insertMany(<programsSubscription-copied-data>);
```
#### 2. Gateway
>./gateway/
```
mvn package
mvn exec:java
```
#### 3. Client
>./client/
```
npm install
ng serve --open
```
#### 4. Compilateur
>./compilation/
```
mvn package
mvn exec:java
```
##### 4.1 Pull java container
```
docker pull freakency/java:1.0
```
##### 4.2 Pull python container
```
docker pull freakency/python:1.0
```
## Vocabulaire
| Art - Martial | Dojo Hepia |
......
......@@ -8,7 +8,8 @@
<button mat-button style="margin:0 3rem 0 0;float:right;" *ngIf="isOwner"
routerLink="/kata_create/{{idProgram}}/{{programLanguage}}">Create a new kata
</button>
<button mat-button style="margin:0 3rem 0 0;float:right" *ngIf="isOwner" (click)="deleteProgram(idProgram)">Delete this
<button mat-button style="margin:0 3rem 0 0;float:right" *ngIf="isOwner" (click)="deleteProgram(idProgram)">Delete
this
program
</button>
<button mat-button style="margin:0 3rem 0 0;float:right" *ngIf="!isOwner"
......@@ -30,8 +31,8 @@
[ngClass]="{'TODO':kata.status==='TODO','ON-GOING':kata.status==='ON-GOING','RESOLVED':kata.status==='RESOLVED','FAILED': kata.status==='FAILED'}">{{kata.status}}</span></h5>
<br/>
<h6 class="card-subtitle mb-2 text-muted">{{kata.difficulty}}</h6>
<button mat-button *ngIf="isOwner" (click)="deleteKata(kata.id)" class="card-link">Delete kata</button>
<button mat-button *ngIf="isOwner" routerLink="#">Statistics</button>
<!-- <button mat-button *ngIf="isOwner" (click)="deleteKata(kata.id)" class="card-link">Delete kata</button>-->
<!--<button mat-button *ngIf="isOwner" routerLink="#">Statistics</button>-->
<!--<p class="card-text">{{kata.description}}</p>-->
</div>
</div>
......
......@@ -2,14 +2,14 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="8d8fb2c1-8426-4933-8193-ee68625cf8de" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/share_docker_file/Kata.class" beforeDir="false" afterPath="$PROJECT_DIR$/share_docker_file/Kata.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../README.md" beforeDir="false" afterPath="$PROJECT_DIR$/../README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../client/src/app/component/kata-displayer/kata-displayer.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/component/kata-displayer/kata-displayer.component.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/DockerCompilation.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/DockerCompilation.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/src/main/java/LiveDB.java" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/src/main/java/LiveDB.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/src/main/java/MockUser.java" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/src/main/java/MockUser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/src/main/java/MongoDB.java" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/src/main/java/MongoDB.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/src/main/java/ProgramsDataBase.java" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/src/main/java/ProgramsDataBase.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/src/main/java/app.java" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/src/main/java/app.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/target/classes/MongoDB.class" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/target/classes/MongoDB.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../gateway/target/classes/app.class" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/target/classes/app.class" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/target/" />
......@@ -27,8 +27,8 @@
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/DockerCompilation.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-687">
<caret line="6" column="67" selection-start-line="6" selection-start-column="67" selection-end-line="6" selection-end-column="67" />
<state relative-caret-position="247">
<caret line="20" column="114" selection-start-line="20" selection-start-column="114" selection-end-line="20" selection-end-column="114" />
</state>
</provider>
</entry>
......@@ -68,7 +68,7 @@
</MavenImportingSettings>
</option>
</component>
<component name="ProjectFrameBounds" fullScreen="true">
<component name="ProjectFrameBounds" extendedState="6" fullScreen="true">
<option name="y" value="23" />
<option name="width" value="1920" />
<option name="height" value="1121" />
......@@ -79,6 +79,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
......@@ -96,7 +97,6 @@
</subPane>
</pane>
<pane id="Scope" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
......@@ -198,11 +198,12 @@
<workItem from="1557902518593" duration="3056000" />
<workItem from="1557931166779" duration="192000" />
<workItem from="1557988860203" duration="849000" />
<workItem from="1558017128365" duration="97000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="41954000" />
<option name="totallyTimeSpent" value="42051000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -214,10 +215,9 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
<editor active="true" />
<frame x="0" y="0" width="1440" height="900" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.34406295" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.3490701" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
......@@ -350,8 +350,8 @@
<entry file="file://$PROJECT_DIR$/share_docker_file/Main.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/DockerCompilation.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-687">
<caret line="6" column="67" selection-start-line="6" selection-start-column="67" selection-end-line="6" selection-end-column="67" />
<state relative-caret-position="247">
<caret line="20" column="114" selection-start-line="20" selection-start-column="114" selection-end-line="20" selection-end-column="114" />
</state>
</provider>
</entry>
......
......@@ -13,12 +13,12 @@ public class DockerCompilation {
case "python":
filename = "share_docker_file/sample.py";
filename_test = "share_docker_file/assert.py";
cmd = "docker run --rm --mount type=bind,source=" + dir + "/share_docker_file,dst=/env/ python:1.0 python3 assert.py";
cmd = "docker run --rm --mount type=bind,source=" + dir + "/share_docker_file,dst=/env/ freakency/python:1.0 python3 assert.py";
break;
case "java":
filename = "share_docker_file/kata.java";
filename_test = "share_docker_file/Main.java";
cmd = "docker run --rm --mount type=bind,source=" + dir + "/share_docker_file,dst=/env/ java:1.0 ./java_test.sh";
cmd = "docker run --rm --mount type=bind,source=" + dir + "/share_docker_file,dst=/env/ freakency/java:1.0 ./java_test.sh";
break;
}
......
No preview for this file type
......@@ -3,7 +3,12 @@
<component name="ChangeListManager">
<list default="true" id="e6a1f2e5-4f60-4227-82bb-83eb10fa94a5" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../README.md" beforeDir="false" afterPath="$PROJECT_DIR$/../README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../client/src/app/component/kata-displayer/kata-displayer.component.html" beforeDir="false" afterPath="$PROJECT_DIR$/../client/src/app/component/kata-displayer/kata-displayer.component.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../compilation/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../compilation/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../compilation/src/main/java/DockerCompilation.java" beforeDir="false" afterPath="$PROJECT_DIR$/../compilation/src/main/java/DockerCompilation.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/MongoDB.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/MongoDB.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/app.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/app.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/target/" />
......@@ -32,11 +37,11 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/app.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="300" column="36" selection-start-line="300" selection-start-column="36" selection-end-line="300" selection-end-column="36" />
<state relative-caret-position="210">
<caret line="30" column="79" lean-forward="true" selection-start-line="30" selection-start-column="79" selection-end-line="30" selection-end-column="79" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......@@ -44,12 +49,14 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/MongoDB.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2958">
<caret line="3" selection-start-line="3" selection-end-line="3" />
<state relative-caret-position="678">
<caret line="283" selection-start-line="283" selection-end-line="283" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#12452#12453#0" expanded="true" />
<element signature="e#12528#12529#0" expanded="true" />
</folding>
</state>
......@@ -59,14 +66,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/LiveDB.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="46" lean-forward="true" selection-start-line="46" selection-end-line="46" />
<folding>
<element signature="e#3805#3806#0" expanded="true" />
<element signature="e#3832#3833#0" expanded="true" />
<element signature="e#3898#3899#0" expanded="true" />
<element signature="e#3926#3927#0" expanded="true" />
</folding>
<state relative-caret-position="660">
<caret line="46" selection-start-line="46" selection-end-line="46" />
</state>
</provider>
</entry>
......@@ -76,28 +77,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" column="22" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
<folding>
<element signature="e#98#99#0" expanded="true" />
<element signature="e#123#124#0" expanded="true" />
<element signature="e#159#160#0" expanded="true" />
<element signature="e#187#188#0" expanded="true" />
<element signature="e#217#218#0" expanded="true" />
<element signature="e#243#244#0" expanded="true" />
<element signature="e#281#282#0" expanded="true" />
<element signature="e#311#312#0" expanded="true" />
<element signature="e#476#477#0" expanded="true" />
<element signature="e#507#508#0" expanded="true" />
<element signature="e#555#556#0" expanded="true" />
<element signature="e#595#596#0" expanded="true" />
<element signature="e#627#628#0" expanded="true" />
<element signature="e#655#656#0" expanded="true" />
<element signature="e#697#698#0" expanded="true" />
<element signature="e#731#732#0" expanded="true" />
<element signature="e#646#647#0" expanded="true" />
<element signature="e#677#678#0" expanded="true" />
<element signature="e#725#726#0" expanded="true" />
<element signature="e#765#766#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
......@@ -105,7 +84,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/Program.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-490">
<state relative-caret-position="45">
<caret line="3" column="47" selection-start-line="3" selection-start-column="42" selection-end-line="3" selection-end-column="47" />
<folding>
<element signature="e#1540#1541#0" expanded="true" />
......@@ -161,8 +140,8 @@
<option value="$PROJECT_DIR$/src/main/java/ProgramsDataBase.java" />
<option value="$PROJECT_DIR$/src/main/java/LiveDB.java" />
<option value="$PROJECT_DIR$/src/main/java/MockUser.java" />
<option value="$PROJECT_DIR$/src/main/java/app.java" />
<option value="$PROJECT_DIR$/src/main/java/MongoDB.java" />
<option value="$PROJECT_DIR$/src/main/java/app.java" />
</list>
</option>
</component>
......@@ -204,39 +183,7 @@
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gateway" type="b2602c69:ProjectViewProjectNode" />
<item name="gateway" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
</panes>
<panes />
</component>
<component name="PropertiesComponent">
<property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
......@@ -321,12 +268,13 @@
<workItem from="1557842011080" duration="239000" />
<workItem from="1557902516521" duration="5257000" />
<workItem from="1557931164526" duration="197000" />
<workItem from="1557988857639" duration="10485000" />
<workItem from="1557988857639" duration="10612000" />
<workItem from="1558017000960" duration="198000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="136691000" />
<option name="totallyTimeSpent" value="137016000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -350,7 +298,7 @@
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32920355" />
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.35903615" />
<window_info anchor="bottom" id="Run" order="2" weight="0.35903615" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.3987952" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
......@@ -532,23 +480,17 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/LiveDB.java">
<entry file="file://$PROJECT_DIR$/src/main/java/KataSubscription.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="186">
<caret line="46" lean-forward="true" selection-start-line="46" selection-end-line="46" />
<folding>
<element signature="e#3805#3806#0" expanded="true" />
<element signature="e#3832#3833#0" expanded="true" />
<element signature="e#3898#3899#0" expanded="true" />
<element signature="e#3926#3927#0" expanded="true" />
</folding>
<state relative-caret-position="75">
<caret line="5" column="26" selection-start-line="5" selection-start-column="24" selection-end-line="5" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/KataSubscription.java">
<entry file="file://$PROJECT_DIR$/src/main/java/LiveDB.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="75">
<caret line="5" column="26" selection-start-line="5" selection-start-column="24" selection-end-line="5" selection-end-column="26" />
<state relative-caret-position="660">
<caret line="46" selection-start-line="46" selection-end-line="46" />
</state>
</provider>
</entry>
......@@ -583,7 +525,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/Program.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-490">
<state relative-caret-position="45">
<caret line="3" column="47" selection-start-line="3" selection-start-column="42" selection-end-line="3" selection-end-column="47" />
<folding>
<element signature="e#1540#1541#0" expanded="true" />
......@@ -594,22 +536,24 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/app.java">
<entry file="file://$PROJECT_DIR$/src/main/java/MongoDB.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
<caret line="300" column="36" selection-start-line="300" selection-start-column="36" selection-end-line="300" selection-end-column="36" />
<state relative-caret-position="678">
<caret line="283" selection-start-line="283" selection-end-line="283" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#12452#12453#0" expanded="true" />
<element signature="e#12528#12529#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/MongoDB.java">
<entry file="file://$PROJECT_DIR$/src/main/java/app.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2958">
<caret line="3" selection-start-line="3" selection-end-line="3" />
<state relative-caret-position="210">
<caret line="30" column="79" lean-forward="true" selection-start-line="30" selection-start-column="79" selection-end-line="30" selection-end-column="79" />
<folding>
<element signature="e#12528#12529#0" expanded="true" />
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
......
......@@ -263,14 +263,6 @@ public class MongoDB extends ProgramsDataBase {
database.getCollection("ProgramsSubscription", ProgramSubscription.class).deleteMany(eq("idprogram", programid));
}
/*
public void deletekatas(String kataid, String programid){
database.getCollection("ProgramsSubscription",ProgramSubscription.class).deleteMany();//
database.getCollection("Programs",Program.class).deleteMany(eq("_id",programid));
}
*/
public void createUser(MockUser u) {
database.getCollection("Users", MockUser.class).insertOne(u);
}
......@@ -289,6 +281,4 @@ public class MongoDB extends ProgramsDataBase {
return true;
}
//§public void deleteKata()
}
......@@ -74,11 +74,6 @@ public class app {
JWTVerifier verifier = JWT.require(algorithm).acceptExpiresAt(518400).build();
JWTProvider provider = new JWTProvider(algorithm, generator, verifier);
// Mock list of users - Temporary
/*users.add(new MockUser(0, "monji", "monji", "monji"));
users.add(new MockUser(1, "shodai", "shodai", "shodai"));
users.add(new MockUser(2, "sensei", "sensei", "sensei"));*/
// Decoder Handler
Handler decodeHandler = JavalinJWT.createHeaderDecodeHandler(provider);
......@@ -372,13 +367,4 @@ public class app {
/******************/
}
/*
public static MockUser checkUser(Context ctx) {
JSONObject ids = new JSONObject(ctx.body());
for (MockUser u : users)
if (u.name.equals(ids.get("username")) && u.password.equals(ids.get("password")))
return u;
return null;
}*/
}
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment