En gros, nous avons plusieurs thèmes (Tandem, associations etc...) que l'administrateur peut créer et gérer. Dans chacun de ces thèmes, nous avons un certains nombre d'organisations (Associations, écoles etc...) qui ont chacune des utilisateurs (membres, élèves etc...) et des superviseurs (ou profs) qui participent à l'organisation des activités, l'inscription des nouveaux membres etc... Une organisation ne peut être inscrite que par l'admin ou par son organisation mère (qui a été inscrite par l'admin), cette dernière peut inscrire à son tour ses membres et ses superviseurs, qui peuvent aussi inscrire de nouveaux membres, le tout dans une limite de nombres d'utilisateurs qui dépend du plan souscri par l'organisation mère.
Basically, we have several themes (Tandem, associations etc...) that the administrator can create and manage. In each of these themes, we have a number of organizations (Associations, schools etc...) that each have users (members, students etc...) and supervisors (or teachers) who participate in the organization of activities, insciprtion of new members etc... An organization can only be registered by the admin or by its parent organization (which has been registered by the admin), the latter can in turn register its members and supervisors, who can also register new members, all within a limit of numbers of users that depends on the plan subscribed by the parent organization.
Chaque thème a ses propres centres d'intérêts mais le plus important à retenir c'est que chaque organisation mère a son propre écosystème avec uniquement ses organisations partenaires et leurs membres / superviseurs, c'est à dire que ces derniers ne peuvent en aucun cas entrer en contact avec des membres d'une organisation appartenant à un autre écosystème.
Each theme has its own hobbies but the most important thing to remember is that each parent organization has its own ecosystem with only its partner organizations and their members/supervisors, which means that they cannot in any way contact members of an organization belonging to another ecosystem.
-The backend is an Express.js REST API. -The frontend is a responsive Vue.js application. -Data is stored in a MongoDB database.
-Le backend est une API REST utilisant Express.js. -Le frontend est une application Vue.js. -Les données sont stockées dans une base de données MongoDB.
Users can login from this form. There is no signup form as all users are created by their organisation as sayed before.
As you see, the application is available in 4 langages.
Les utilisateurs peuvent se connecter depuis ce formulaire . Il n'y a pas de formulaire d'inscription comme tous les utilisateurs sont inscrits par leur organisation comme dit plus haut
Comme vous le voyez, l'application existe en 4 langues.
Les activités sont organisées dans un calendrier entièrement codé par moi-même, je n'ai utilisé aucun plugin etc...
The activities are organized in a calendar entirely coded by myself, I did not use any plugin etc.
The organizer can create, modify and delete HIS activities, he can only modify and delete those of other organizers/supervisors if they have granted him this right, but any activity can be deleted by his hierarchical superior (the hierarchy explained above).
L'organisateur peut créer, modifier et supprimer SES activités, il ne peut modifier et supprimer celles des autres organisateurs / superviseur que si ces derniers lui ont accordé ce droit, mais toute activité peut être supprimée par son superieur hierarchique (la hiérarchie expliquée plus haut).
Members can see the activities they have access to (from the groups they are in etc...) and can register for them.
Les membres peuvent voir les activités auxquelles ils ont accès (de par les groupes auxquels ils appartiennent etc...) et peuvent s'inscrire dessus.
The activities can also be filtered by date by clicking on a date on the calendar, by month, those coming up this month and those in the next few months, as well as the history of past activities, the user can also filter by group to see only the activities related to a group he/she belongs to, as can be seen in the picture.
On peut aussi filtrer les activités par date en cliquant sur une date sur le calendrier, par mois, ceux à venir ce mois-ci et ceux des prochains mois, ainsi que l'historique des activités passées, l'utilisateur peut aussi filtrer par groupe pour ne voir que les activités liées à un groupe auquel il appartient, comme on peut le voir sur la photo.
Et oui, toute l'application est responsive et accessible depuis un mobile
And yes, the whole application is responsive and accessible from a mobile
Here anyone can publish something, it can be a simple text or images (with text). Other members (same ecosystem) can see thoses publications, like and comment them.
Ici tout le monde peut publier quelque chose, ça peut être une texte simple tout comme ça peut être des photos (accompagnées de texte) Les autres utilisateurs (du même écosystème) peuvent voir ces publications, les commenter et les liker.
Each user can fill his profile with his informations and fill his hobbies (if it's a member) so he can match with other members and get to know them.
Tout utilisateur peut remplir son profil et renseigner ses centres d'intérêts (si c'est un membre) pour pouvoir accéder à la page de matching avec les autres utilisateurs et faire leur connaissance.
Tout type d'utilisateurs a un profil différent avec des élements différents à renseigner
Every type of user has a different profile with different elements to fill in
Tous les membres peuvent signaler du contenu allant contre les règles d'utilisation, comme des propos insultants en messages ou sur un profil. Les responsables ont des fonctions de modération pour s'occuper de ces cas.
All members can report content that goes against the rules of use, such as offensive language in posts or on a profile. Managers have moderation functions to handle these cases.
J'ai aussi créé une interface de moderation sur laquelle on peut visualiser l'ensemble des utilisateurs existants.
I've also created a page where a moderator we can see all users and moderate them.
Les utilisateurs d'un même écosystème (en plus de l'admin) peuvent s'envoyer des messages instantannés. J'ai utilisé socket.io que j'ai sécurisé en faisant en sortes que l'envoi de messages ne se fasse pas par requête socket mais par https
Users in the same ecosystem (in addition to the admin) can send each other instant messages. I used socket.io, which I secured by making sure that messages were not sent by socket request but by https.