Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsegismont/vertx-gsoc-2024-assessment
Eclipse Vert.x GSoC 2024 Assessment App
https://github.com/tsegismont/vertx-gsoc-2024-assessment
Last synced: about 2 months ago
JSON representation
Eclipse Vert.x GSoC 2024 Assessment App
- Host: GitHub
- URL: https://github.com/tsegismont/vertx-gsoc-2024-assessment
- Owner: tsegismont
- License: apache-2.0
- Created: 2024-03-07T18:33:42.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-04-19T07:08:33.000Z (8 months ago)
- Last Synced: 2024-10-20T08:58:41.600Z (2 months ago)
- Language: Java
- Homepage:
- Size: 68.4 KB
- Stars: 0
- Watchers: 3
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Eclipse Vert.x GSoC 2024 Assessment App
:toc:
:toc-placement!:In 2024, the Eclipse Vert.x team proposes a https://gitlab.eclipse.org/eclipsefdn/emo-team/gsoc-at-the-ef/-/issues/2[subject] for Google Summer of Code through the Eclipse Foundation.
In addition to the GSoC proposal document, we ask candidates to implement a Vert.x application.
This will help us make sure candidates have a basic understanding of asynchronous programming and the Vert.x toolkit.toc::[]
== The assessment app
This repository contains the skeletons for a "Jokes Of The Day" Vert.x application.
The Maven POM files are set up for you so fork the repository and start coding.
The application involves a few Vert.x modules: Vert.x Web, the Vert.x Web Client, Vert.x HTTP Proxy and Vert.x JUnit 5.
It consists in three components:
. a backend that fetches jokes from the https://icanhazdadjoke.com/api[icanhazdadjoke.com] public API
. a website serving static files
. a proxy that relays traffic from the browser to the website and backend applications== Tasks
=== Fetching jokes
In the `backend.BackendVerticle` class, set up a Vert.x Web Router and HTTP server.
When the HTTP server is ready, make sure that requests to `/joke` will return a random joke, loaded from the https://icanhazdadjoke.com/api[icanhazdadjoke.com] public API.
Create a `backend.BackendVerticleTest` unit test that verifies this behavior.
=== User interface
Update the `webroot/index.html` file of the `website` module: create a user interface that allows to fetch and display a new joke over HTTP.
In the `website.WebsiteVerticle` class, set up a Vert.x Web Router to serve the static content.
=== Proxy
In the `proxy.ProxyVerticle` class, set up a Vert.x Web Router and HTTP server.
Then use https://vertx.io/docs/vertx-http-proxy/java/[Vert.x HTTP Proxy] and https://vertx.io/docs/vertx-web-proxy/java/[Vert.x Web Proxy] to relay traffic from the browser to the website and backend applications.
== Submitting code
Please share your implementation by providing a pull request to this repository.
*Do not try to play smart by copying other candidates pull requests*.
In order to ease the review:
* rebase your pull request on `main` regularly
* organize your `git` history to show one commit per task== Getting help
The http://vertx.io/docs[Vert.x docs] have all the information you need to implement the assessment application.
If you are not sure how to proceed with one or more of the tasks, get in touch with the possible mentors (email links on the https://gitlab.eclipse.org/eclipsefdn/emo-team/gsoc-at-the-ef/-/issues/2[subject], or you can https://github.com/tsegismont/vertx-gsoc-2024-assessment/issues/new[file an issue] in this project).