peakyDicers / csgames19-competition

CS Games 2019 Mobile Competition http://2019.csgames.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CS Games 2019 - Compétition mobile

Bienvenue à la compétition mobile des CS Games 2019!

(English below ↓)

Introduction

À bord du CS Paradise, les festivités s'enflamment. Cocktail en main et téléphone en poche, vous vous joignez à la fête et tentez de vous y intégrer. Vous réalisez cependant que tout le monde semble utiliser un appareil spécial pour commander des breuvages, que vous ne possédez pas. Vous profitez donc de votre propre appareil et de vos capacités de développement mobile pour répliquer cet appareil et rejoindre le serveur, qui pourra alors vous abreuver de délicieux nectars.

***

Après quelques recherches dans les confins de la toile, vous arrivez à dénicher une version de développement d'une application utilisée par d'autres étudiants. Affectueusement appelée MixParadise, elle permet de créer son breuvage de rêve en assemblant des jus, liqueurs et ingrédients dans un mélangeur. Celle-ci n’est pas tout à fait complète, mais semble très prometteuse pour débuter.

MixParadise
SPLASH LIST MAP AR
Écran d'accueil Mélangeur Ingrédients Évaluation

Une photo un peu floue qui accompagnait l'archive vous permet même d’obtenir la documentation de l’API du serveur, qui a été retranscrite dans le dossier /api de ce répertoire. Vous constatez que le serveur du CS Paradise est très prolifique, il permet entre autres de:

  • Lister les ingrédients disponibles pour assembler votre breuvage de choix
  • Transmettre une recette au serveur afin qu’elle soit préparée pour vous
  • Recevoir un taux d’appréciation du serveur face à la recette que vous avez demandée

Avec le projet de départ et la documentation de l'API, vous vous retroussez les manches, ouvrez votre IDE et vous lancez à la quête du cocktail parfait. 🍹

Pour débuter

Vous trouverez le code de base du projet MixParadise dans les sous-dossiers /ios et /android de ce répertoire GitHub:

Applications mobiles



Application iOS



Application Android

Toutes les instructions pour démarrer les applications de base devraient être couvertes au bout des liens respectifs. Si vous avez besoin d'assistance, n'hésitez pas à nous en faire part.

Le défi

L'application MixParadise est construite pour ajouter des ingrédients à un mélangeur, les combiner en un breuvage créatif, puis les envoyer au serveur pour être servi et validé. Le défi consiste à compléter cette application en quête du cocktail parfait, suivant l'une ou plusieurs des 3 pistes ci-bas.

🛠 Fonctionnalités listées

Les lignes suivantes détaillent l'ensemble des fonctionnalités prévues ainsi que leur état de complétion:

SectionFonctionnalitéComplétée
Structure Écran d'accueil
Fond d'écran et base du mélangeur
Boutons d'action “Add Ingredients” et “Serve”
Bouton d'action du mélangeur
Add Ingredients Fenêtre modale pour ajouter des ingrédients
S'ouvre à l'appui du bouton "Add Ingredients"
Chargement des ingrédients du serveur
Se référer à la documentation de l'API pour récupérer la liste d'ingrédients
Chargement des ingrédients secrets du serveur
Les instructions sont aussi disponibles dans la documentation de l'API
Affichage de la liste des ingrédients
Référez-vous à la maquette graphique pour inspiration visuelle
Appui d’un ingrédient pour l’ajouter
Devraient apparaître dans le mélangeur suite à l'appui
Ajout d’un ingrédient "liquide" au mélangeur
Les ingrédients apparaissent un par-dessus avec leurs couleurs respectives
Ajout d’un ingrédient "solide" au mélangeur
Les ingrédients apparaissent dans le liquide (si déjà présent)
Affichage du nombre d'ingrédients ajoutés
Nombre indiqué dans la fenêtre d'ingrédients suite aux ajouts au mélangeur
Push Mélange des ingrédients à l'appui du bouton
Mélange des liquides entre eux pour former un cocktail dans le mélangeur
Couleur résultante du liquide
Mélange des couleurs des ingrédients liquides selon leurs proportions
Serve Fenêtre modale pour voir les résultats
S'ouvre à l'appui du bouton "Serve" lorsque le mélange est complété
Chargement des résultats du serveur
Référez-vous à la documentation de l'API pour la requête et la réponse
Affichage des résultats de la recette
Référez-vous à la maquette graphique pour inspiration visuelle
Animation de succès
Lorsque la recette est évaluée à 100% 🎉
Nouveau breuvage
Nettoyage du mélangeur afin de recommencer suite au service d'un breuvage

Le défi ici consiste à remplir les trous fonctionnels pour arriver à l'application complète telle que développée dans sa version finale. Les fonctionnalités peuvent être développées de la façon de votre choix, mais la structure existante de l'application devrait vous servir de guide.

Chaque fonctionnalité à compléter possède une valeur égale de 10 pts, pour un total de 70 pts sur cette piste.

💡 Fonctionnalités créatives

Si tout va bien ou que vous souhaitez essayer autre chose, vous avez aussi l'opportunité d'innover pour accumuler des points.

  • Inventez une nouvelle fonctionnalité à l'application qui n'est pas listée ci-haut.
  • Trouvez une fonctionnalité innovante qui créerait une valeur ajoutée à l'application et implantez-la de façon à nous impressionner.

Cette piste peut vous rapporter jusqu'à 10 pts.

🍹 Recette parfaite

En transmettant les recettes au serveur, il vous attribuera une évaluation basée sur différents critères.

  • Si vous arrivez à trouver la combinaison parfaite des ingrédients pour obtenir un résultat de 100%, spécifiez-la au moment dans vos notes de soumission.
  • Attention de ne pas bombarder le serveur de requêtes – il s'agit d'un serveur partagé avec les autres participants de la compétition, agissez en bons citoyens avec vos confrères.

Cette piste peut vous rapporter jusqu'à 10 pts.

Évaluation

L'objectif n'est pas nécessairement de compléter tous les éléments ci-haut dans une période de 3 heures. Cela dit, chaque item possède la même valeur en points, mais ils ne présentent pas tous la même complexité. Il est donc votre responsabilité de les prioriser et de gérer votre temps en conséquence, afin de maximiser votre succès.

Critères

La grille suivante sera utilisée pour la correction:

CritèresPoints

🛠 Fonctionnalités listées (×7)

  • Fonctionnalité complétée et conforme
  • Qualité du développement (code et propreté)
  • Qualité de l'intégration (apparence et utilisation)
  • Respect des maquettes visuelles (si applicable)
/ 70

💡 Fonctionnalités créatives

  • Originalité et innovation
  • Qualité du développement (code et propreté)
  • Qualité de l'intégration (apparence et utilisation)
/ 10

🍹 Recette parfaite

  • Liste des ingrédients et quantités exactes
  • Résultat de 100% validé avec le serveur
/ 10

📂 Remise

  • "Pull Request" en bonne et due forme
  • Description fournie et bien documentée
/ 10
Total / 100

Autres points importants:

  • Un projet qui ne builde pas, en suite d'efforts minimaux de notre part, se verra pénalisé de -50 pts.

  • Votre application doit partir de nos projets de base et être soumis à l'aide d'une Pull Request propre, sans quoi vous serez pénialisés de -25 pts.

  • L'heure de soumission de votre code ne doit pas dépasser la fin de la compétition. Une tricherie identifiée recevra une note de 0 / 100.

Remise

⚠️ Prévoyez au moins 10 minutes avant la fin de l'épreuve pour préparer votre soumission ⚠️

La correction sera effectuée à l'aide de Pull Requests sur le répertoire GitHub.

Si vous n'êtes pas familiers avec ce concept, référez-vous à ces articles:

Votre Pull Request doit respecter la structure suivante:

  • Titre: Nom de votre équipe (exemple: DaStreez)
  • Description: Utiliser le template Markdown ci-bas en remplaçant les textes entre {}
## Équipe

**Nom de l'équipe:** {DaStreez}
**Numéro de l'équipe:** {1}
**Délégation:** {Université de Griffintown}

**Auteurs:**
- {Hugo Lefrançois}
- {Mathieu Larue}

## Solution

**Plateforme:** {iOS | Android}

**Fonctionnalités:**

| Fonctionnalité                                  | Complété |
| ----------------------------------------------- |:--------:|
| Chargement des ingrédients du serveur           ||
| Chargement des ingrédients secrets du serveur   | {?}      |
| Affichage de la liste des ingrédients           | {?}      |
| Appui d’un ingrédient pour l’ajouter            | {?}      |
| Affichage du nombre d'ingrédients ajoutés       | {?}      |
| Couleur résultante du liquide                   | {?}      |
| Chargement des résultats du serveur             | {?}      |
| {Nouvelle fonctionnalité}                       | {?}      |

**Votre meilleure recette:**

- {...}

**Comment la compétition s'est passée:**

- {...}
- {...}

**Fiertés et déceptions:**

- {...}
- {...}

NOTE: Si vous n'avez pas de compte GitHub, levez la main au début de la compétition, nous pourrons vous fournir un compte générique.

Remerciements

Merci aux membres de l'équipe de Mirego derrière cette compétition:

Licence

Cette compétition est © 2019 Mirego et peut être librement distribuée sous la license BSD. Voir le fichier LICENSE.md.

À propos de Mirego

Mirego est une équipe de gens passionnés qui croit que le travail est un lieu agréable propice à l’innovation. Nous sommes une équipe de personnes talentueuses qui construisent des applications Web et Mobile. Nous nous réunissons pour partager nos idées et changer le monde.

Nous aimons aussi les logiciels open-source et tentons de redonner le plus possible dans la communauté.


CS Games 2019 - Mobile Competition

Welcome to the CS Games 2019 Mobile Competition!

(French above ↑)

Introduction

Aboard the CS Paradise, festivities are on fire. Cocktail in your hand and phone in your pocket, you join the party and hope to blend in. You realize that most people seem to use some sophisticated device to order beverages, which you don't have. You decide to use your own device and mobile development skills to replicate this device and reach the server, who will then replenish yourself with delicious nectars.

***

After some deep search in the dark web, you achieve to dig out a development version of an app used by other students. Affectionately called MixParadise, the app allows to create your dream drink by assembling juices, soft drinks and ingredients in a mixer. It is not fully complete, but it is very promising to start with.

MixParadise
SPLASH LIST MAP AR
Splash screen Mixer Ingredients Rating

A blurry picture found with the code gives you some insights on the server API documentation, which was transcribed in the /api folder of this repository. You'll find that the CS Paradise server is very prolific, as he is able to:

  • List available ingredients to assemble the drink of your choice
  • Submit a recipe to the server to have it prepared for you
  • Receive an appreciation note from the server for your recipe

With the base project and the API documentation, you roll up your sleeves, open your IDE and start your quest for the perfect cocktail. 🍹

To Begin

You will find the base code of MixParadise in the subfolders /ios and /android of this GitHub repository:

Applications mobiles



iOS Application



Android Application

All the instructions to build these base projects should be covered in the above links. If you need any assistance, please reach out to us.

The Challenge

The MixParadise app is built to add ingredients in a mixer, combine them in a creative beverage, then send them to a server to be served and validated. The challenge consists to complete this app to find the perfect cocktail, following one or many of the 3 tracks below.

🛠 Listed Features

The following lines detail all the features planned for the app, with their state of completion:

SectionFeatureCompletion
Structure Splash screen
Backdrop and mixer base
“Add Ingredients” and “Serve” action buttons
Mixer action button
Add Ingredients Modal screen to add ingredients
Opens when tapping the button "Add Ingredients"
Fetch ingredients from the server
Refer to the API documentation to fetch the ingredients list
Fetch secret ingredients from the server
Instructions are also available in the API documentation
Show the ingredients list
Refer to the design mockup for visual inspiration
Tap on an ingredient to add it in the mixer
Should appear in the mixer after tap
Add "liquid" ingredients to the mixer
Ingredients appear stacked over each other
Add "solid" ingredients to the mixer
Ingredients appear inside the liquid contents (if alreay present)
Show the count of added ingredients
The count is shown in the ingredients list after they were added in the mixer
Push Mix ingredients when tapping the button
Liquids are mixed together to create a cocktail in the mixer
Resulting liquid color
Mix the liquid colors according to their relative proportion
Serve Modal screen to show results
Opens when tapping the "Serve" button after a drink is completed
Fetch results form the server
Refer to the API documentation for the request and response
Show recipe results
Refer to the design mockup for visual inspiration
Success animation
When the recipe is rated at 100% 🎉
New drink
Mixer cleanup to restart the process after a drink service

The challenge here is to fill the feature gaps to complete the app as it would be developed in its final fashion. Features may be developed the way you like, but the existing app structure should align you in the process.

Each feature to complete has a value of 10 pts, for a total of 70 pts for this track.

💡 Creative Features

If everything goes well or you want to try something else, you also have the opportunity to innovate in order to accumulate points.

  • Invent a new feature for the application that is not listed below.
  • Find a feature that will bring some added value to the app, and implement it in order to impress us.

This track may award you up to 10 pts.

🍹 Perfect Recipe

When submitting recipes to the server, he will give you a rating based on various criteria.

  • If you succeed to find the perfect combination of ingredients for a result of 100%, specify it in your submission notes.
  • Please don't raid our server with requests – it is the same shared server for every participants of the competition, be a good citizen by keeping it organic.

This track may award you up to 10 pts.

Evaluation

We're not asking to do connect the data source, implement all display modes and add all the features listed above. In 3 hours, we ask you to do as much as possible and make full use of your creativity – the ultimate goal is to impress us.

The objective is not necessarily to complete all elements above in 3 hours. That being said, each item has the same point value, but they don't necessarily have the same complexity. We leave it up to you to prioritize and manage your time consequently, in order to maximize your success.

Criteria

Your solutions will be marked using the following grid:

CriteriaPoints

🛠 Listed Features (×7)

  • Feature is completed and compliant
  • Development quality (code and cleanliness)
  • Integration quality (appearance and usability)
  • Respect of design mockups (if applicable)
/ 70

💡 Creative Features

  • Originality and innovation
  • Development quality (code and cleanliness)
  • Integration quality (appearance and usability)
/ 10

🍹 Perfect Recipe

  • Ingredients list with exact quantities
  • 100% result is validated with the server
/ 10

📂 Submission

  • Pull Request correctly submitted
  • Solution description provided and well-documented
/ 10
Total / 100

Other important points:

  • A project that doesn't build, after minimal efforts on our end, will be penalized by -50 pts.

  • Your code must be based on our sample projects and be submitted using a proper Pull Request, otherwise you will be penalized by -25 pts.

  • The submission timestamp must not be greater than the end of the competition. If we catch you cheating, you will get 0 / 100.

Submission

⚠️ Please keep 10 minutes before the end of the competition to prepare the submission ⚠️

The submission will be done by adding a Pull Request to this GitHub repository.

If you are not familiar with the concept, please refer to these articles:

Your Pull Request must respect the following pattern:

  • Title: Your team code (exemple: DaStreez )
  • Description: Use the Markdown template below by replacing the text in {}
## Team

**Team Name:** {DaStreez}
**Team Number:** {1}
**University:** {Griffintown University}

**Authors:**
- {Hugo Lefrançois}
- {Mathieu Larue}

## Solution

**Platform:** {iOS | Android}

**Features:**

| Feature                                         | Completed |
| ----------------------------------------------- |:---------:|
| Fetch ingredients from the server               ||
| Fetch secret ingredients from the server        | {?}       |
| Show the ingredients list                       | {?}       |
| Tap on an ingredient to add it in the mixer     | {?}       |
| Show the count of added ingredients             | {?}       |
| Resulting liquid color                          | {?}       |
| Fetch results form the server                   | {?}       |
| {New feature}                                   | {?}       |

**Your best recipe:**

- {...}

**What went well or wrong:**

- {...}
- {...}

**What you are proud or disappointed of:**

- {...}
- {...}

NOTE: If you don't have a GitHub account, raise your hand at the beginning of the challenge, we can provide you with a generic account.

Acknowledgements

Thanks to the folks from Mirego behind this competition:

License

This competition is © 2019 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md file.

About Mirego

Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.

We also love open-source software and we try to give back to the community as much as we can.

About

CS Games 2019 Mobile Competition http://2019.csgames.org

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Swift 44.6%Language:Objective-C 21.3%Language:Kotlin 20.8%Language:Java 10.7%Language:Ruby 2.4%Language:GLSL 0.2%