Code Monkey home page Code Monkey logo

outstanding-cobra's People

Contributors

jmesserli avatar m4r1ku avatar needtoroll avatar punix81 avatar xanthos3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

wahello

outstanding-cobra's Issues

Upsource for Code Reviews

Should I set up an Upsource instance to do code reviews on in the future?

It has github integration and automatically syncs PRs and comments on them.

The biggest advantage over github is that it has:

  • Static code analysis engine from IntellJ integrated
  • Go to definition / find usages
  • IntelliJ integration (plugin) -> reviewing directly in IntelliJ
  • IntelliJ Double-Shift style search
  • More analytics
  • It's from Jetbrains

I've already had Upsource on my server before and it shouldn't be any pain to set it up.

Fix RequestFilter

The request filter is currently failing because we are reading the request body from the request which is not intended. We might want to disable the filter temporarily and then think about a better way because i think fixing it like it is will bring trouble.

Request authorization

We need to check if the current user has the permission to perform an action on the given entity.

Fix Querydsl Support

The way we have the project set up right now, we can't use Querydsl to do queries.

Options:

  1. Make a second project that contains only entities and interfaces used by those entities @needToRoll
  2. Switch to JPA CriteriaApi and write a custom gradle plugin to handle the generation of the entities (cringe)
  3. Fork kotlin gradle plugin to run it after compileJava task (ultra cringe)
  4. Use JPA CriteriaApi without Metamodel generation which is not typesafe (quite cringe but easy to change now)

cc @outcobra/developers

Perform Release 1.0.0

We added a lot of functionality in Sprint 2 and we should perform a release soon. Therefore we need to review all changes made in Sprint 2 (most of it is done by me, it just has to be implemented / discussed) and merge onto develop and master.

  • Review all changes
  • Apply / discuss reviews
  • Branch for release and prepare
  • Merge onto master, develop and back into manage-ui
  • Close Sprint 2

ConfirmDialogService

We need a ConfirmDialogService which displays a message in a MdDialog
with 3 buttons in it.

  • Ok / Yes
  • No
  • Cancel

The functions to display the dialog should return an observable which contains the result of the dialog.

We also need to clarify the usage of the MdDialog.
If someone has time to test the MdDialog Service feel free to do that.

contributing guidelines are off

The section here is not quite right.
I think the branches should be called by their actual names (as in master, develop and feature/your-feature).
Also git-flow is usually written in small letters.

Datepicker/Timepicker i18n

The Datepicker and the Timepicker should have proper i18n with moment.

Move everything to a separate moment part in the i18n files.

3.1 Schuljahre erstellen

Ich als Benutzer kann einer Institution Schuljahre hinzufügen.

Das neu erstellte Schuljahr 16/17 ist in der Datenbank gespeichert.

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

Fix pull request template

The text This closes issue #... doesn't actually close the issue. This closes #... should work instead.

Dokka

Added Dokka to gradle

Sprint planning

@outcobra/developers we should plan the next sprint as soon as possible!

Icon on Management UI

I'd like to discuss with you wether you like the current icons on the manage ui or not (and why).

image

You can request another icon for a specific thing on the UI, but keep the material icons in mind.

delivery of tests, 22.11.16

We have to deliver the first part of the dokumentation next tuesday.

Because of this we need to put some extra effort into the dokumentation.

I tried to make a list with the things we have to get done until then:

  • Write unittests for the API endpoints
  • Reformulate the testconcept and write it into the realisation-report (Realisierungsbericht)
  • Adapt all of it to the wishes of mister Walter

Kotlin / Lombok incompatibility

It seems like there is some kind of incomatibility between Lombok and Kotlin.

It is not possible to access "lombok-generated methods in Kotlin.
Example:
If a Java Class looks like this:

@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
public class Institution {
    @Id
    private Long id;
    @NotNull
    private String name;
    @ManyToOne
    private User user;
    @OneToMany(mappedBy = "institution")
    private List<SchoolClass> schoolClasses;
    @OneToMany(mappedBy = "institution")
    private List<Teacher> teachers;
}

I can not do this:

    override fun getInstitutionById(id: Long) : InstitutionDto {
        var institution : Institution = repository.getOne(id)
        return InstitutionDto(institution.id,institution.name)

    }

Because id and name are private...

...but if I add this to the Java Class...

    public Long getId(){ return this.id; }
    public String getName(){ return this.name; }

...it works properly

There is a possible workaround here: https://discuss.kotlinlang.org/t/kotlin-java-lombok-interop/1442

Getting more done in GitHub with ZenHub

Hola! @jmesserli has created a ZenHub account for the outcobra organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.


How do I use ZenHub?

To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.

What can ZenHub do?

ZenHub adds a series of enhancements directly inside the GitHub UI:

  • Real-time, customizable task boards for GitHub issues;
  • Multi-Repository burndown charts, estimates, and velocity tracking based on GitHub Milestones;
  • Personal to-do lists and task prioritization;
  • Time-saving shortcuts – like a quick repo switcher, a “Move issue” button, and much more.

Add ZenHub to GitHub

Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @jmesserli.

ZenHub Board

Adapt all of it to the wishes of mister Walter

As we all know mister Walter has very specific notions about how he wants to get stuff deliverd.

It will be necessary to adapt our work to his wishes to reach a good mark.

I hope he is going to explain it soon in his reply to my email...

We should have enough time to do this on friday.

0.3 Login

Ich als Benutzer kann mich am System anmelden.

Ein User der registriert aber nicht angemeldet ist kann sich nach dem Starten der Applikation einlogen. Nach dem erfolgreichen Login wird eine Übersicht der erfassten Lektionen und Aufgaben angezeigt.

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

Endpoint/Controller class naming

What suffix do Controller/Endpoint classes have? Currently we have a InstitutionEndpoint class and a UserController class. Which one is named correctly?

2.1 Klassen erstellen

Ich als Benutzer kann meine Klasse erfassen und mit einer Institution verlinken

Vorbedingungen Schuljahr erfasst
Die Klasse A2 wird gesepichert.

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

Look at re-introducing Lombok

If we implement #41, we might be able to bring Lombok back which would be good for maintainability reasons.

This is not in any way beneficial to the functionality and is therefore low-priority.

0.2 Registrierung

Als Benutzer kann ich mich beim Start der Applikation registrieren.

Akzeptanzkriterien:
Beim Start der Applikation wird der nicht authentifizierte User auf eine Seite weitergeleitet auf der er sich registrieren oder anmelden kann. Nachdem der User das Registrierungsformular abgesendet hat, sind seine Daten in der Datenbank gespeichert und der User ist angemeldet.

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

4.1 Semester können erfasst werden

Ich als Benutzer kann das Semester erfassen und zu Schuljahren hinzufügen.

Das Semester wird gespeichert.

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

Reformulate the testconcept and write it into the realisation-report

According to the comments in the realisation-report document on google drive we have to explain why we are testing every part of the code the way we are testing it.

My idea is to explain that the api is the most important thing, and that we want to test it with unittests.
I am drafting my thoughts into the report right now. But you will have to review and rewrite it.

Update Packages

We should update our npm packages sometime:

PS *\outstanding-cobra\frontend> yarn outdated
yarn outdated v0.17.6
Package                           Current       Wanted        Latest        Package Type
@angular/common                   2.2.0         2.2.3         2.2.3         dependencies
@angular/compiler                 2.2.0         2.2.3         2.2.3         dependencies
@angular/core                     2.2.0         2.2.3         2.2.3         dependencies
@angular/forms                    2.2.0         2.2.3         2.2.3         dependencies
@angular/http                     2.2.0         2.2.3         2.2.3         dependencies
@angular/platform-browser         2.2.0         2.2.3         2.2.3         dependencies
@angular/platform-browser-dynamic 2.2.0         2.2.3         2.2.3         dependencies
@angular/router                   3.2.0         3.2.3         3.2.3         dependencies
@types/jasmine                    2.5.35        2.5.38        2.5.38        devDependencies
@types/node                       6.0.45        6.0.51        6.0.51        devDependencies
@types/underscore                 1.7.33        1.7.35        1.7.35        dependencies
angular2-material-datepicker      0.4.0         0.5.0         0.5.0         dependencies
angular2-notifications            0.4.4         0.4.47        0.4.47        dependencies
auth0-js                          7.3.0         7.5.0         7.5.0         dependencies
auth0-lock                        10.5.1        10.7.1        10.7.1        dependencies
materialize-css                   0.97.7        0.97.8        0.97.8        dependencies
moment                            2.15.1        2.17.0        2.17.0        dependencies
ng2-translate                     3.1.3         3.2.1         4.0.1         dependencies
zone.js                           0.6.25        0.6.26        0.7.2         dependencies
angular-cli                       1.0.0-beta.18 1.0.0-beta.18 1.0.0-beta.21 devDependencies
angular2-materialize              5.2.1         5.2.1         6.2.1         dependencies
codelyzer                         0.0.28        0.0.28        1.0.0-beta.4  devDependencies
jasmine-core                      2.4.1         2.4.1         2.5.2         devDependencies
jasmine-spec-reporter             2.5.0         2.5.0         2.7.0         devDependencies
karma                             1.2.0         1.2.0         1.3.0         devDependencies
ng2-datepicker                    1.1.1         1.1.1         2.0.0-dev5    dependencies
protractor                        4.0.9         4.0.9         4.0.11        devDependencies
rxjs                              5.0.0-beta.12 5.0.0-beta.12 5.0.0-rc.4    dependencies
ts-node                           1.2.1         1.2.1         1.7.0         devDependencies
tslint                            3.13.0        3.13.0        4.0.2         devDependencies
typescript                        2.0.2         2.0.2         2.0.10        devDependencies
Done in 1.52s.

Create Production SQL Create Script

We need to provide a finished sql create schema and tables script because setting autoddl = create, compiling, deploying, undeploying, autoddl = verify, compiling, deploying for one deploy is not realistic.

For out-of-development usage, we might want to include something like Flyway for migrations.

We might want to automate this using a gradle plugin.

Timepicker

We need a timepicker component in material design. It should contain 2 text fields for the minute and the hour and each textfield has 2 button to increase and decrease the number.

When 23 is reached in the hour field then a click on the increase button should increase the number to 0 (same on the other field and in the other direction).

If it is possible the Timepicker should be available as inline element and as a popup too (TimepickerPopupComponent).

5.1 Lehrkräfte erfassen

Ich als Benuter kann die Lehrkraft Max Muser erfassen

Max Muster wird in der Datenbank gespeichert

Ich als Benutzer kann beim erfassen angeben, an welcher Institution die Lehrkraft unterrichtet.

"Vorbedingungen: Institution ""BMS GIBB"" erfasst.
Die Lehrkraft ist mit der Institution verlinkt."

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

Split DataLoader

We should split our DataLoader in multiple DataLoaders which all handle only one Entity type.

Take a look at this interface.

Implement it in the MIKOS-Style.

Write unittests for the API endpoints

We have to deliver test-code.

The enpoints (with all the services and stuff) are most likely the most important thing.
It shoud be possible to cover them with tests until tuesday.

I would recommand not to go too deep it only has to look good

1.1 Institutionen erstellen

Ich als Benutzer kann eine Institution (Schule) IET-GIBB erstellen.

Die Schule IET GIBB wird in der Datenbank gespeichert

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

5.2 Lehrkräfte erfassen

Ich als Benutzer kann beim erfassen angeben, an welcher Institution die Lehrkraft unterrichtet.

"Vorbedingungen: Institution ""BMS GIBB"" erfasst.
Die Lehrkraft ist mit der Institution verlinkt."

  • Dto definieren
  • Endpoint definieren
  • Service implementieren

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.