Open Java project for those who are looking for the first development experience

    Introduction


    Good day, the inhabitants of Habr. It so happened that sometimes I train staff for the world of programmers. I tried at one time, in addition to the full-time courses, to record several instructional videos about Java for the smallest ( http://java.b0noi.com ), but even a third did not finish = (. It was decided not to go beyond the framework of offline courses, but one of the problems still had to decide. How to give students real development experience? I would also like not just the experience of team development, but also what students could include in their resumes something public and at least a little useful.

    What I would like to see in the project, with which listeners work with:
    • Java itself with Java EE elements
    • maven;
    • git / mercurial;
    • continues integration system;
    • DB interaction;
    • JavaScript

    Implementation



    Of course, such a project can most likely be only a project for the Web. After thinking about what can be quickly created and transferred to OpenSource, with further support, it was decided to make "another" service to reduce links. Moreover, in Ukraine there are not as many of them as in the world - several domains were registered: l.co.ua and more national http: //ї.co.ua (this domain does not work yet).

    The project itself is hosted on Jelastic, but for those who will push to the server this information will most likely not be in demand. The external part is written in JavaScript + BootStrap, and behind the scenes a REST Server written in Java (jersey) is working. MongoDB was chosen as the database.

    So, in fact, the project is divided into 4 parts (there will be more =)):
    • REST
    • A web interface that is nothing more than another client for REST;
    • Database;
    • Plugins for browsers (now so far made only for Orthodox Safari);

    The plugin (currently only available for Safari) can do this:

    REST


    Here is a short description of REST'a v. 0.2:

    post

    l.co.ua/rest/postUrl - post long url and get short id
    l.co.ua/generateShort - post long url and get short id (DEPRICATED)

    get

    l.co.ua [id] - get redirect html to long url with id
    l.co.ua/rest/statistic [id] - get statistic for id. Statistic is array in JSON format, each field contains information about: Date, Country and OS

    Join


    And today the project appeared on github and everyone can fork it without interference, make a contribution and get a well-deserved mention on the authors page. I start next week, if everything goes as planned, I will start with the audience refactor and optimization of the project, as well as compiling a detailed wiki in order to quickly join.

    But, despite the mediocrity of the link reduction service, there is also a very interesting idea about its monetization. But history is silent about this for now.

    Anti trolling


    This section is for those who, instead of talking, essentially begin to change the subject. I understand that it was possible to add something to hundreds of OpenSource projects that already exist and someone would say that this is a bicycle, but at the moment this is exactly what I need, since it is possible that we will write version 2.0 together with the students completely from scratch, so the question of their project would still be standing. Plus for myself, I have long wanted to try something on jelastic, because before that I only worked with Amazon EC2. There are many more reasons why I chose this option. Moreover, to make such a project is 2-4 hours.

    UPD: link on github
    UPD2: the language version in the project is Java 7 (the idea to specify the language version was competently proposed by the Odis habrayuzer )

    Also popular now: