Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added keycloak integration #1

Open
wants to merge 81 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
8bbd4cf
Uploaded original files of the project from https://github.com/gfacch…
Apr 10, 2018
2e21c14
Merge pull request #1 from amreo/master
amreo Apr 10, 2018
2389ffc
Added keycloak-angular
Apr 10, 2018
6de54ae
Added Course+CoursesService, mock data, made dashboard dynamic
Apr 10, 2018
9ec6139
Moved files; Added keycloak integration
Apr 11, 2018
5d61c52
Removed login page
Apr 11, 2018
82e2952
Merge pull request #2 from amreo/master
amreo Apr 11, 2018
afcdda2
Added session mock
Apr 11, 2018
c674aab
Merge pull request #3 from amreo/master
amreo Apr 11, 2018
c60bf30
Updated dependecies
Apr 11, 2018
475a54c
Merge pull request #4 from amreo/master
amreo Apr 11, 2018
7b9a2db
Setup tests with headless chrome
mbolis Apr 12, 2018
1f81a44
add jenkinsfile
Apr 17, 2018
d9c28ee
add test file and Jenkinsfile
Apr 19, 2018
3c915c4
Update Jenkinsfile
walterbosis Apr 20, 2018
5ec7160
Update Jenkinsfile
walterbosis Apr 20, 2018
5fd519d
Added dockerfile
maioant99 Apr 21, 2018
d6f8e13
Fixed error
amreo Apr 21, 2018
fcc07b8
Added basic code/html widget
Apr 23, 2018
c386052
Merge branch 'master' of https://github.com/marconi-welearn/welearn
Apr 23, 2018
ce279ec
Merge pull request #5 from amreo/master
amreo Apr 23, 2018
8c83ff9
Update courses.service.spec.ts
walterbosis Apr 24, 2018
194ee24
Test.Aggiunta di ?: da {{widget.text}} a {{widget?.text}} perché mi d…
Apr 26, 2018
9dcfeeb
Added healthcheck
maioant99 May 2, 2018
59b2629
Fixed healtcheck
May 2, 2018
4c04259
Merge pull request #6 from amreo/master
amreo May 2, 2018
4e74bc8
Fixed simple error
May 2, 2018
7f0b77a
Merge pull request #7 from amreo/master
amreo May 2, 2018
8ef8ddf
Fixed syntax error dockerfile
May 2, 2018
7a6ce09
Merge pull request #8 from amreo/master
amreo May 2, 2018
cf62cf9
Added logger service
May 2, 2018
fd27162
Added use of endpoint /api/courses
May 5, 2018
2451481
Merge pull request #9 from amreo/master
amreo May 5, 2018
64396e2
Updated IP addresses
May 8, 2018
2b860c0
Merge pull request #10 from amreo/master
amreo May 8, 2018
09ba89e
Added getCourseDetail method
May 9, 2018
f429ca0
Completed CourseService
May 9, 2018
974c481
Merge pull request #11 from amreo/master
amreo May 9, 2018
10a568f
Added session service
May 11, 2018
a7ef46c
Merge pull request #12 from amreo/master
amreo May 11, 2018
6472f12
Added display of units; Implemented unit widget
May 11, 2018
186b7d1
Merge pull request #13 from amreo/master
amreo May 11, 2018
00ced77
Fixed syntax error
May 11, 2018
d3ed1ad
Merge pull request #14 from amreo/master
amreo May 11, 2018
d468cf5
Fixed another stupid error
May 11, 2018
78a4db1
Merge pull request #15 from amreo/master
amreo May 11, 2018
255483b
Added logout button
May 12, 2018
9bfbb8b
Merge pull request #16 from amreo/master
amreo May 12, 2018
75c1098
Added empty space
May 12, 2018
51eb7b4
Merge pull request #17 from amreo/master
amreo May 12, 2018
c224923
Changed template of widget html
May 14, 2018
1524b85
Merge pull request #18 from amreo/master
amreo May 14, 2018
fe60b22
Aggiunto Codemirror, bug su OSX
May 21, 2018
fdef313
Merge pull request #19 from amreo/master
amreo May 21, 2018
0ca31cc
Aggiunte migliorie grafiche, rimosso codemirror in attesa di risoluzi…
May 22, 2018
e1a10aa
Updated Widget to conform the new API specification
May 22, 2018
b7a0fa7
Added all entity
May 22, 2018
f8a1864
Added progresses service
May 22, 2018
dfb6bd5
Added project service
May 22, 2018
fc478cc
Merge pull request #20 from amreo/master
amreo May 22, 2018
9517d7c
Fixed forgotten field
May 22, 2018
4fcdc24
Merge pull request #21 from amreo/master
amreo May 22, 2018
cf29610
Updated entity to reflect the new API specifications
May 24, 2018
944ecc5
Added getting file support
May 26, 2018
5e4b3bf
Merge pull request #22 from amreo/master
amreo May 26, 2018
e9244df
Workarounded angular bug
May 26, 2018
4042af1
Merge pull request #23 from amreo/master
amreo May 26, 2018
c9001f8
Add build and exec support
May 27, 2018
96f336d
Updated packages
May 28, 2018
f360d9f
Fixed pull stdout/err bugs
Jun 3, 2018
fa091b6
Merge pull request #24 from amreo/master
amreo Jun 3, 2018
32aa0c9
Downgraded packages for cors bug
Jun 11, 2018
4fd58bc
Merge pull request #25 from amreo/master
amreo Jun 11, 2018
f347082
Updated README.md
Jun 13, 2018
3f04331
Merge pull request #26 from amreo/master
amreo Jun 13, 2018
2dfc18c
Added keycloak configuration instructions
Jun 13, 2018
e8584af
Merge pull request #27 from amreo/master
amreo Jun 13, 2018
35a44a7
Fixed some documentation errors
Jun 18, 2018
e654e17
Merge pull request #28 from amreo/master
amreo Jun 18, 2018
402931a
Added codemirror by @mbolis
Jun 23, 2018
6bd94ca
Merge pull request #29 from amreo/master
amreo Jun 23, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .angular-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "we-learn"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.css"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "src/tsconfig.app.json",
"exclude": "**/node_modules/**"
},
{
"project": "src/tsconfig.spec.json",
"exclude": "**/node_modules/**"
},
{
"project": "e2e/tsconfig.e2e.json",
"exclude": "**/node_modules/**"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"component": {}
}
}
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false
44 changes: 44 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/dist-server
/tmp
/out-tsc
/build

# dependencies
/node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
testem.log
/typings

# e2e
/e2e/*.js
/e2e/*.map

# System Files
.DS_Store
Thumbs.db
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM nginx
COPY dist/* /usr/share/nginx/html/
RUN apt-get update && \
apt-get install -y curl && \
apt-get clean
HEALTHCHECK CMD curl http://127.0.0.1
EXPOSE 80
35 changes: 35 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
pipeline {
agent any
stages {
stage('test') {
steps {
nodejs('NodeJs_9_11_1') {
sh 'pwd'
sh 'npm install'
sh 'CHROME_BIN=/usr/bin/chromium-browser npm run test-run'
}
}
}
stage('build') {
steps {
nodejs('NodeJs_9_11_1') {
sh 'npm run build-dev'
zip zipFile: 'build2.zip', archive: false, dir: 'dist'
}
}
}
stage('report') {
steps {
nodejs('NodeJs_9_11_1') {
archiveArtifacts artifacts: 'build2.zip', fingerprint: true
//archiveArtifacts(artifacts: 'dist/*.*', allowEmptyArchive: true)
}
}
}
}
post {
always {
junit 'build/reports/*.xml'
}
}
}
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,25 @@
# weLearn
Frontend side for the WeLearn project by students from Marconi, Dalmine
# WeLearn-FE
WeLearn-FE is weLearn's frontend. WeLearn is a web application which enable the user to follow some courses and to modify/build/exec online programming exercises.
**WARNING**: It's not recommended to put it in production because it is not ready yet. There are many security and functionality issues.
## Requirements
It requires ```docker```, ```keycloak```, ```npm``` and ```welearn-be```.
## Keycloak setup
* Create a REALM
* Create the role TEACHER
* Add some users.
* Create a client welearn-fe with:
* Valid Redirect URIs = '*'
* Web Origins = '*'
## Configuration of the project
There is a configuration file called ```environment.ts``` in ```src/environments```. It should be configured accordingly your needs.
In particular set the correct keycloak url and backend base url.
## Setup (on docker)
```bash
git clone https://github.com/Marconi-weLearn/weLearn.git
cd weLearn
npm install
npm run build-dev --aot
docker build -t welearn-fe:latest .
docker run -dp 80:80 --name welearn-fe welearn-fe:latest
```

132 changes: 132 additions & 0 deletions angular.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"we-learn": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
"tsConfig": "src/tsconfig.app.json",
"polyfills": "src/polyfills.ts",
"assets": [
"src/assets",
"src/favicon.ico"
],
"styles": [
"src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "we-learn:build"
},
"configurations": {
"production": {
"browserTarget": "we-learn:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "we-learn:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"karmaConfig": "./karma.conf.js",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"scripts": [],
"styles": [
"src/styles.css"
],
"assets": [
"src/assets",
"src/favicon.ico"
]
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"src/tsconfig.app.json",
"src/tsconfig.spec.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
},
"we-learn-e2e": {
"root": "",
"sourceRoot": "",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "./protractor.conf.js",
"devServerTarget": "we-learn:serve"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"e2e/tsconfig.e2e.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
}
},
"defaultProject": "we-learn",
"schematics": {
"@schematics/angular:component": {
"prefix": "app",
"styleext": "css"
},
"@schematics/angular:directive": {
"prefix": "app"
}
}
}
14 changes: 14 additions & 0 deletions e2e/app.e2e-spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { AppPage } from './app.po';

describe('we-learn App', () => {
let page: AppPage;

beforeEach(() => {
page = new AppPage();
});

it('should display welcome message', () => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to app!');
});
});
11 changes: 11 additions & 0 deletions e2e/app.po.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { browser, by, element } from 'protractor';

export class AppPage {
navigateTo() {
return browser.get('/');
}

getParagraphText() {
return element(by.css('app-root h1')).getText();
}
}
14 changes: 14 additions & 0 deletions e2e/tsconfig.e2e.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
Loading