GithubHelp home page GithubHelp logo

sgrenet / calendar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-ent-ng/calendar

0.0 2.0 0.0 272 KB

Application de gestion d'agenda personnel et partagés pour OPEN ENT NG

License: GNU Affero General Public License v3.0

JavaScript 69.06% Java 19.69% CSS 2.21% HTML 9.04%

calendar's Introduction

A propos de l'application Agenda

  • Licence : AGPL v3 - Copyright Conseil Régional Nord Pas de Calais - Picardie, Conseil départemental de l'Essonne, Conseil régional d'Aquitaine-Limousin-Poitou-Charentes

  • Développeur(s) : ATOS

  • Financeur(s) : Région Nord Pas de Calais-Picardie, Département 91, Région Aquitaine-Limousin-Poitou-Charentes

  • Description : Application agenda personnel et agenda partagé

Documentation technique

Construction

		gradle copyMod

Déployer dans ent-core

Configuration

Dans le fichier /calendar/deployment/calendar/conf.json.template :

Déclarer l'application dans la liste :

{
  "name": "net.atos~calendar~0.2.0",
      "config": {
        "main" : "net.atos.entng.calendar.Calendar",
        "port" : 8098,
        "app-name" : "Calendar",
        "app-address" : "/calendar",
        "app-icon" : "calendar-large",
        "host": "${host}",
        "ssl" : $ssl,
        "userbook-host": "${host}",
        "integration-mode" : "HTTP",
        "app-registry.port" : 8012,
        "mode" : "${mode}",
        "entcore.port" : 8009
     }
}

Associer une route d'entée à la configuration du module proxy intégré ("name": "net.atos~calendar~0.2.0") :

	{
		"location": "/calendar",
		"proxy_pass": "http://localhost:8098"
	}

Présentation du module

Fonctionnalités

L’Agenda permet la création et la visualisation d’événements sous forme d’un calendrier ou d’une liste.

Des permissions sur les différentes actions possibles sur les agendas, dont la contribution et la gestion, sont configurées dans l'agenda (via des partages Ent-core). Le droit de lecture, correspondant à qui peut consulter l'agenda est également configuré de cette manière.

L'Agenda met en œuvre un comportement de recherche sur le titre, la description et le lieu des événements.

Modèle de persistance

Les données du module sont stockées dans deux collections Mongo :

  • "calendar" : pour toutes les données propres aux agendas
  • "calendarevent" : pour toutes les données propres aux évènements

Modèle serveur

Le module serveur utilise 2 contrôleurs de déclaration :

  • CalendarController : Point d'entrée à l'application, Routage des vues, sécurité globale et déclaration de l'ensemble des comportements relatifs aux agendas (liste, création, modification, destruction et partage)
  • EventController : Sécurité des évènements et déclaration de l'ensemble des comportements relatifs aux évènements d'un agenda (création, modification, destruction, récupération et import ical)

Les contrôleurs étendent les classes du framework Ent-core exploitant les CrudServices de base. Pour des manipulations spécifiques, des classes de Service sont utilisées :

  • EventService : Concernant les évènements de l'Agenda

Le module serveur met en œuvre deux évènements issus du framework Ent-core :

  • CalendarRepositoryEvents : Logique de changement d'année scolaire
  • CalendarSearchingEvents : Logique de recherche

Des jsonschemas permettent de vérifier les données reçues par le serveur, ils se trouvent dans le dossier "src/main/resources/jsonschema".

Modèle front-end

Le modèle Front-end manipule 3 objets models :

  • Calendars : Correspondant aux agendas
  • Calendar : Correspondant à un agenda
  • CalendarEvent : Correspondant aux évènements d'un agenda

Il y a 2 Collections globales :

  • model.calendars.all qui contient l'ensemble des objets calendar synchronisé depuis le serveur.
  • model.calendarEvent.all qui contient l'ensemble des objets event synchronisé depuis le serveur.

calendar's People

Contributors

morquea avatar dboissin avatar benjaminperez avatar kfrances avatar gfrancillette avatar elbywan avatar dmtran-osc avatar vogelmt avatar invfo avatar hervedevos avatar dbreyton avatar jeducray avatar jmdoleans avatar vpuel avatar rdjedjig avatar hfanaba avatar pjallet avatar

Watchers

James Cloos avatar SGrenet avatar

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.