CPP - Prépa des INP - Nancy | Projet Informatique 2ème année
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
2015-2016
2017
docs
.gitignore
LICENSE
README.md

README.md

cpp-2a-info

CPP - Prépa des INP - Nancy | Projet Informatique 2ème année

Documentation officielle : https://matthieu637.github.io/cpp-2a-info/client.Reseau-class.html

Log (historique de toutes les parties en temps réel) : https://matthieu-zimmer.net/~matthieu/courses/simbourse.log

Contributions (la suite ne concerne que les personnes voulant aller plus loin)

Pour les plus motiver, nous vous encourageons à améliorer le projet (il vous faudra un compte sur github, utiliser git, forker le projet et proposer des pull requests).

Attention à garder vos branches à jour avant de pull request au risque que nos branches master divergent (https://github.com/matthieu637/cpp-2a-info/network). Cela vous permettra également de résoudre les conflits avant tout pull request :

#ajoute le projet officiel à votre fork
git remote add upstream https://github.com/matthieu637/cpp-2a-info.git
#récupère les modifications du projet officiel (qui peuvent également provenir d'autres étudiants)
git pull upstream master
#envoyer la fusion à votre fork github
git push origin master

Pour reporter des bugs, l'interface dédiée se trouve ici : https://github.com/matthieu637/cpp-2a-info/issues (différent du pull request)

Documentation

Pour les contributions à la documentation, il est inutile de modifier les fichiers du répertoire /docs. Ils sont générés à l'aide du script 2017/docgen et du fichier 2017/client.py. Il suffit donc de modifier les commentaires présents dans le fichier 2017/client.py, pour avoir un aperçu html de vos modifications vous pouvez appeler le script 2017/docgen (nécessite l'exécutable epydoc).

Pour la documentation du serveur, vous pouvez utiliser SHIFT + ALT + J sur le nom d'une méthode dans eclipse. Contrairement à python, la documentation en java se place avant la fonction (exemple ici : https://github.com/matthieu637/SMA/blob/master/project/src/java/modele/percepts/Interpreteur.java)

Serveur

Pour les contributions au serveur, il est conseillé d'utiliser l'IDE Eclipse et d'importer le projet SimBourse pour lancer le serveur en local. Il faudra alors préciser au client de se connecter en localhost :

r = Reseau('localhost', 23456) #au lieu de de r=Reseau()

Puisque les nouvelles commandes que vous avez ajoutées ne seront pas directement disponibles sur le serveur officiel, cela vous permettra d'effectuer des tests en local. Après la validation de votre pull request, le serveur officiel sera relancé avec les nouveaux changements, vous permettant alors de réutiliser r=Reseau().

Contributions possibles (triées par difficulté, * : prioritaire ) [Liste des Contributeurs]

Pour les contributions suivantes (les plus difficiles), il est inutile, pour le moment, d'implémenter uniquement ces fonctions dans le client (avec de multiples requêtes au serveur). L'intérêt étant qu'elles soient justement exécutées au plus vite du côté serveur avant les autres requêtes. Si elles ne sont pas terminées avant la compétition, chaque étudiant pourra alors décider de les implémenter du côté de son client (pas besoin de partager votre solution).

  • ajouter des ordres "meilleurs prix" : écoule (achète/vend) x actions jusqu'à épuisement des x actions (client+serveur)
  • ajouter des Stop orders (client+serveur) : vend/achète x actions dès que le prix chute/augmente à y.