Coder Social home page Coder Social logo

adept-informatique / lanadept Goto Github PK

View Code? Open in Web Editor NEW
8.0 7.0 2.0 222.3 MB

Site Internet de gestion du Lan de l'Adept. Permet de gérer les inscriptions et les tournois.

Home Page: http://lanadept.com/

License: GNU General Public License v3.0

C# 21.71% CSS 2.81% ASP 0.02% JavaScript 61.66% HTML 13.22% TSQL 0.58%
lan-party

lanadept's Introduction

LanAdept

Site Internet de gestion du Lan de l'Adept. Permet de gérer les inscriptions et les tournois.

Fonctionnalités

  • Page d'accueil avec les informations pour le lan (Emplacement, heure, places restantes)
  • Système de réservation de place au LAN
  • Système d'inscription aux tournois
  • Panneau d'administration complet
  • Système de permission dans le panneau d'administration pour donner accès à certains modules seulement

Déploiement

Veuillez vous référer au Guide de déploiement Azure

Images

Page d'accueil Carte des places Place d'un utilisateur Liste des tournois

Panneau d'administration

Administration d'un utilisateur Administration d'un tournoi

lanadept's People

Contributors

dompling7 avatar huideaki avatar icesentry avatar island212 avatar lalevac avatar moustachauve avatar obrassard avatar pierreolivierbrillant avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

lanadept's Issues

Administration des tournois

Description

Partie admin permettant de rajouter des tournois et de voir les users inscrit à un tournoi

  • Créer/Modifier un tournoi
  • Créer le tournoi a partir d'une liste de jeux
  • Ajouter/modifier des jeux a la liste de jeux
  • Définir le nombres de joueurs par équipe
  • Envoyer un email à tous les membres d'une équipe
  • Envoyer un email un seul membre d'une équipe
  • Définir une équipe comme étant complète
  • Confirmer l'inscription d'une équipe
  • Définir la date de début d'un tournoi
  • Définir que le tournoi a "officiellement" commencé
  • Définir que le tournoi est terminé
  • Voir une liste des équipes/users inscrit dans un tournoi
  • Voir une liste facilement copiable des noms d'équipe pour mettre dans un bracket

Administration des utilisateurs

Administration des utilisateurs

Endroit dans le panneau d'admin qui permet de gérer les utilisateurs inscrits sur le site

  • Permettre d'effacer un compte
  • Permettre d'envoyer un email à un/plusieurs utilisateur(s)
  • Voir les tournois auquel un utilisateur participe
  • Voir ses informations d'inscriptions au LAN tel qu'un historique de ses inscription, annulation, confirmation, départ, etc
  • Voir une historique de ses connexions
  • Pouvoir éditer le nom d'un utilisateur
  • Pouvoir cliquer sur le nom d'un utilisateur pour loader sa page de détails

Administration des tournois

  • Les admins peuvent promouvoir un user normal au role de team leader
  • Si un tournoi contient seulement 1 membre par equipe alors rejoindre le tournoi ne devrait pas demander de creer une equipe

Date de début des réservations de place et inscriptions aux tournois

Description

Les réservations de places devrait être bloquée jusqu'à une date prédéterminée. Cela va de même pour les tournois. La page avec la carte des places ainsi que la liste et les détails des tournois doivent quand même être accessible.

  • Afficher la date à laquelle les réservations/inscriptions débutent dans un avertissement visible facilement.
  • Les tournois peuvent être marqué comme étant "Publié"
  • Seul les tournois publié doivent être visible pour les utilisateurs

Cantine et commande en ligne

Description

Il faut afficher les produits disponibles dans la cantine et faire une fonctionnalité de panier pour effectuer une commande en ligne.

  • Je peux voir la liste des produits
  • Je peux ajouter des produits dans mon panier
  • Je peux augmenter ou diminuer les quantités de produits dans mon panier
  • Je peux retirer des produits de mon panier
  • Je peux commander les produits de mon panier
  • Je dois être averti si ma commande est modifier ou annulé par un livreur
  • Je peux annuler ma commande, mais seulement si celle-ci n'est pas en cours de livraison
  • Je dois voir le total à payer de ma commande
  • Je peux voir la position de ma commande

Page d'information et reglement

Description

Page d"information et de reglement

  • La page liste les reglements
  • La page liste les informations supplementaire qui ne sont pas sur la page d'acceuil
  • Permet de downloader les info et reglement en PDF

Secrets en clair des les sources

Ouin, c'est pas très conseillé de laisser les clés d'API et les mots de passe dans le repo GitHub... Il faudrait peut-être les mettre dans un fichier de config externe pour éviter que quelqu'un de mal intentionné ne puisse obtenir le mot de passe du site d'admin ou utiliser les clés d'API à mauvais escient.

Permissions des tournois

Description

Il devrait être possible d'assigner des gens à administrer un tournoi spécifiquement sans qu'il puisse en créer des nouveaux. Cela permettrait d'éviter de donner la permission de création de tournois à tout le monde.

  • Définir des organisateurs de tournois
  • Seul les administrateurs de tournois peuvent ajouter des organisateurs
  • Marquer un message comme quoi les organisateurs doivent se faire donner les permissions d'accéder au panneau d'administration par un administrateur d'utilisateur

Réparer le timer de début du LAN

En ce moment, le timer de début du LAN va afficher des chiffres négatifs lorsqu'il tombera à zéro.

Ce serait bien de le caché lorsqu'il tombe à zéro, et peut-être même afficher des messages comme par exemple : Le LAN est débuté!

Si on affiche des messages pour le début du LAN, il faudrait aussi en afficher un pour dire que le LAN est terminé

Ajout d'une section recherche de joueurs pour les tournois

Une section pour que les joueurs s'annonces cherchant une équipe pour un tournois
ps : la page doit seulement être accessible aux utilisateurs connectés.

  • Faire un UI qui montre les différentes informations nécessaire : role, MMR / Classement, gamertag, discord etc.
  • Faire une fonctionnalité de trie par jeux
  • Permettre à l'admin d'une équipe d'invité un joueur : envoie d'un email pour notifié.

Inscription et connexion sur le site du LAN

Description

Système d'inscription et de login simple

Côté client

  • Page d'inscription
  • Page de connexion
  • Login avec le email
  • Confirmation par email
  • Le nom complet réel (un seul champ) doivent être enregistrer
  • Un avertissement que le nom complet réel doit être correcte doit être afficher (sous peine de se voir refusé l'accès (?)
  • Nom in game (Facultatif) Sera par tournoi à la place

Date d'ouverture des réservations

Description

Il faudrait modifier le comportement du paramètre pour la date de début des réservations. Avant cette date, il est possible de voir toutes les informations du LAN, mais pas de réserver une place ni de s'inscrire à un tournoi.

  • La carte affiche toutes les places comme étant libre (Comme ça si il y a un pré-enregistrement les utilisateurs ne le verront pas et ne se poseront pas de questions).
  • Il doit y avoir un message dans le haut de la carte pour indiquer la date d'ouverture des inscriptions.
  • Le décompte sur la page d'accueil devrait montrer le temps avant l'ouverture des réservations.
  • Il doit être possible de choisir d'afficher que la date n'est pas encore déterminée

Changement dans login

Il faudrait qu'il y ait un lien vers la page d'inscription dans la page de login.

De plus, le returnUrl ne se fait pas setter lorsqu'on clique sur le bouton connexion dans le menu en haut, ça serait cool qu'il y soit

Réparer le codebare

Description

L'ID de l'utilisateur a été modifié pour un GUID. Cela fait que le code barre est vraiment trop long. Il faut donc trouver une façon de faire un code barre unique.

Inscription d'un user à un tournoi

Description

Un user qui décide de s'inscrire à un tournoi peut soit créer une équipe, ou en rejoindre une

Membre d'une équipe

  • Un user peut demander de rejoindre autant d'équipe qu'il le souhaite
  • Lorsqu'un user est accepté dans une équipe, toutes ses demandes pour d'autres équipes sont annulé
  • Un user peut quitter une équipe jusqu'à ce que sont équipe soit confirmé, pendant le lan
  • Si un user veut quitter son équipe après qu'elle eu été confirmer, il devra aller voir un admin

Responsable d'une équipe

  • Un user peut créer une équipe
  • Le user qui crée l'équipe est considérer comme le responsable de son équipe
  • Le responsable approuve ou refuse la demande des autres joueurs à se joindre à son équipe
  • Le responsable peut déléguer la responsabilité de l'équipe à un autre membre, il devient alors un simple membre de l'équipe
  • Le responsable peut supprimer son équipe
  • Si une équipe est supprimée, tous les membres recevront un email pour les en informer

Vue des places des personnes dans son équipe de tournois

En gros, la feature qui permetait de voir l'emplacement des personnes d'une équipe de tournois sur la map est brisé du au changements du fonctionnement de la map.
17195579_1560994670597083_1475903327_o

  • Faire en sorte de voir les joueurs d'une équipe lors du clic sur le bouton vert d'une autre couleur dans la map des places

Réservation d'une place au LAN [Basic]

Description

Système permettant à un utilisateur de réserver une place au LAN de manière extrèmement simple.

  • Le user choisi le numéro de la place qu'il veux
  • Toutes les places devraient être afficher, mais ceux qui sont occupé devrait être facilement différenciable et non sélectionnable
  • Le user doit pouvoir continuer à voir les places disponibles/occupés même après avoir choisi sa place
  • Le user doit pouvoir changer sa place
  • Le user doit pouvoir annuler sa réservation en tout temps
  • Les places doivent être identifiés par leurs numéro et leurs section
  • Après avoir réservé une place, on est redirigé vers les détails de notre réservation au lieu de la map.

Une fois le LAN débuté, le user devra aller voir un admin pour changer de place dans le système.

Technique

  • Enregistrer la date d'inscription, annulation, ...
  • Ne jamais supprimer une entrée de place, seulement marquer la date "d'annulation"
  • Enregistrer la raison du déplacement/retrait/... de la personne (Ex: Changement de place, désinscription, expulsion, ...)

Ajouter de l'information dans la légende des places

Il serait pratique d'afficher des messages pour indiquer plus précisément ce que représente chaques état d'une place dans la légende de la carte pour que le monde comprennent ce que ça veux dire la place occupée, par exemple

Administration des paramètres généraux du LAN

Description

Permet de modifier les paramètres généraux du LAN qui pourrait changer d'un LAN à l'autre

  • Permettre de déterminer la date et heure de début du LAN
  • Permettre de déterminer la date et heure de fin du LAN
  • Permettre de changer les règlements généraux du LAN
  • Permettre de déterminer automatiquement que le LAN est officiellement commencé
  • Permettre de déterminer automatiquement que le LAN est officiellement terminé
  • Permettre de changer le message de rappel du début du LAN
  • Permettre de changer le nombre de jours avant la date du début du LAN à laquel un rappel est envoyé à tout ceux inscrits

Réinitialisation du site

Description

Il faudrait une option dans le panneau d'administrateur qui n'est disponible que pour l'administrateur général qui permet de réinitialiser toutes les réservations de places pour recommencer un LAN.

  • Il faut mettre l'emphase sur le danger de l'opération
  • Il faut un modal de confirmation
  • Il faut que toutes les réservations soit misent dans une table d'historique pour avoir la possibilité de revenir en arrière si quelqu'un se trompe vraiment
  • Refaire la section de génération des places en fonction du nombre de table demander ex : rendu à Z passer à AA

Plan

Description

La liste des places devrait s'afficher dans un plan qui représente bien le positionnement physique de la salle du LAN de l'Adept

  • Les places doivent afficher leur état actuel
  • Il doit être possible de cliquer sur une place pour la réservée
  • Il doit être possible de cliquer sur sa place pour voir la page "Ma place"
  • Le plan doit fonctionner autant sur l'ordinateur que sur mobile
  • Intégrer le plan pour la partie admin

Voici un apperçu du plan en image:

mxudh2t

Système général d'envoi de courriel

Description

Système permettant facilement d'envoyer un email à un utilisateur

  • Les emails devrait tous avoir un look semblable
  • Plusieurs modèles (Ex: Confirmation du compte, Rappel du lan, message de l'organisateur, ...)

Billets pour le Lan

Description

L'utilisateur doit pouvoir voir et télécharger/imprimer son billet.

  • Doit contenir le nom de la place, le nom de la personne ainsi que son code barre.
  • Le code barre doit être assez gros même sur mobile pour le scanner facilement
  • Il doit y avoir un bouton pour lancé l'impression du browser
  • Le billet est beau beau beau

Optimisation de la map

Enlever une charge de téléchargement au serveur en optimisant la map. Surtout qu'on pourrait supposément en avoir plusieurs.

  • Télécharger les noms des utilisateurs seulement quand l'utilisateur veut le voir (Ajax)
  • Mettre la map en RAM.
  • Enlever le model Tile et le mettre dans la place

Faire un Helper pour les messages

Description

Il faudrait faire un HtmlHelper et une classe pour créer des messages (Error, success, warning) pour remplacer le code qui est copié/collé un peu partout

Inscription par facebook

Lors de l'inscription par facebook, le callback n'a pas l'air de renvoyé l'email qui devrais être préremplis

Enlever les HttpStatusCodeResult

Description

Dans le panneau d'admin, plusieurs méthodes utilisent des "return new HttpStatusCodeResult" avec des codes d'erreurs. Ce n'est pas un WebApi, il faudrait donc gérer les erreurs correctement en redirigeant vers une page appropriée et en affichant les erreurs.

  • Enlever tous les HttpStatusCodeResult
  • Afficher un message d'erreur convenable à l'utilisateur

Le scanner ne fonctionne pas pour les code barres avec des lettres

En ce moment, le script qui gère le scanner ne supporte pas les codes barres avec des chiffres à cause de cette ligne:
if (e.which >= 48 && e.which <= 57) {
( LanAdept/LanAdeptAdmin/Scripts/scanner.js )
48 à 57 sont les codes ascii pour 0 à 9 avec '/' pour une raison quelconque.
Il faudrait accepter les autres caractères aussi.

Gérer les commandes de la cantine

Description

Les gens qui font la livraison doivent voir la liste des commandes à livrer ainsi que les produits à livrer

  • Je dois pouvoir voir la liste des commandes à faire
  • Les commandes devrait être affichée first-in first-out
  • Je dois voir facilement les items commandés et le total à payer
  • Je peux marquer une commande comme étant livrée
  • Je peux marquer une commande comme étant annulée en spécifiant la raison
  • La liste des commandes devrait se mettre à jour en temps réel
  • Je dois pouvoir activer et désactiver la création de nouvelle commande
  • Cette page devrait être très mobile-friendly

Utiliser les classes built-in pour gérer les users

Description

En ce moment, le système de users est basé sur des classes que j'ai fait moi-même. Il faudrait utiliser ceux fournises par ASP MVC.Net pour être plus sécuritaire.

  • Changer toutes les classes custom pour ceux "stock"
  • Utiliser le système de permission par rôle "stock"
  • Permettre de se connecter avec Facebook et Google+

Administration des places du LAN

Description

Système qui permet de gérer les users du LAN physiquement pendant le lan

  • Doit permettre de voir les places libres, les places réservés et les places occupés
  • Doit pouvoir scanner un code barre contenant l'identifiant unique d'un user pour le chercher
  • Détecter automatiquement lorsqu'un scanner scan un code bar et lancer la recherche
  • Doit permettre d'annuler une réservation
  • Doit permettre de rendre une place disponnible
  • Doit pouvoir cliquer sur une place n'importe où (Par exemple dans les détails d'un utilisateur) pour voir les détails d'une place
  • Doit pouvoir chercher par identifiant unique une personne
  • Doit pouvoir réserver une place pour quelqu'un qui n'est pas inscrit
  • Doit permettre, en sélectionnant une place occupé, de changer la place de cette personne d'un coup (Sans avoir à rendre la place disponible puis réinscrire la personne à une autre place) Peut-être dans le futur?

Technique

  • La date/heure à laquelle la place est devenu occupée doit être sauvegarder
  • La date/heure à laquelle la place est revenu disponible doit être sauvegarder
  • Un enregistrement ne doit jamais être supprimé
  • Lorsqu'une personne se fait déplacer, cela enregistre un autre entrée dans la base de donnée
  • Enregistrer la raison du déplacement/retrait/... de la personne (Ex: Changement de place, désinscription, expulsion, ...)

Administration des produits de la cantine

Description

Il faut pouvoir gérer les produits de la cantine dans le panneau d'admin

  • Je dois voir la liste des produits
  • Je peux ajouter des produits
  • Je peux modifier des produits
  • Je dois assigner un prix aux produits
  • Je peux choisir une image pour les produits
  • Je peux marquer certains produits comme étant en rupture de stock (ou épuisé)
  • Je peux marquer certains produits comme étant caché

Réparer le scanner sur android

En ce moment, le scanner sur android pointe vers le mauvais url. Il faudrait s'arranger pour qu'il pointe toujours sur le bon url avec Url.Action

Changement des places

Changement complet du fonctionnement et affichage des places

  • Implémentation de l'api http://www.seats.io/ pour les places.
  • Fonctionnement des réservation avec notre BD et l'api seats.
  • Test de performance.

Page d'accueil accueillante et descriptive

Description

Il serait important que la première page donne le gout aux gens de s'inscrire.

  • Il faudrait des photos des lans précédents
  • Description de qu'est-ce que le lan
  • Information sur l'heure de début/etc
  • Information sur l'endroit
  • Information sur les jeux/tournois
  • Que ce soit beau! 🌵
  • Lien vers l'inscription
  • Décompte avant le début du LAN
  • Afficher nombres de places disponible

Liste de jeux

  • La page liste les jeux qui seront jouer
  • Chaque jeux contient un lien vers la page steam ou une page officiel du site ainsi que un lien vers le tournoi
  • Chaque jeux indique le nombre de joueur qui participe

Admin:

  • Ajouter/modifier/supprimer un jeux

Page de profile

Faire une section profil pour gérer le profil de l'utilisateur connecté

  • Modifier le nom
  • Modifier le mot de passe
  • Modifier le email
  • L'acces au menu se fait par un dropdown
  • Le dropdown contient (pas necesairement dans cet ordre) :
    • Deconnexion
    • Mon profil
    • Mon equipe
    • Ma place

Importer les dependencies Javascript/css par nugget

Juste une petite suggestion, je crois que ce serait bien que les fichiers js et css externe (bootstrap, jquery, ...) soit charger depuis nugget (ou autre) et ne soit pas commit dans le repo github. Ca pourrait réduire la taille du projet et en même temps ça ne dirait plus que le projet est 67% du JS.

Page "À propos"

Description

Une page à propos pour parler des librairies avec des licenses qui disent qu'on doit les mentionner, remercier l'équipe technique de réseau, l'équipe de développeur, etc.

  • Information sur les licences
  • Remerciement des gens de réseau
  • Remerciement des gens de prog
  • Remerciement des bénévoles

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.