# about.md # Projet Python avancé > Antonin Blin, lead dev > Brendan Poirier, dev > Charles Paulas Victor, Data Scientist ## Source des données du catalogue Messier https://www.datastro.eu/explore/dataset/catalogue-de-messier/table/?disjunctive.objet&disjunctive.mag&disjunctive.english_name_nom_en_anglais&disjunctive.french_name_nom_francais&disjunctive.latin_name_nom_latin&sort=-annee *Description*: 110 lignes x 14 colonnes Nom des colonnes: - Messier (nomenclateur de Messier) - NGC (https://fr.wikipedia.org/wiki/New_General_Catalogue) - Object type / Type d'objet - Season / Saison - Magnitude (https://www.futura-sciences.com/sciences/definitions/univers-magnitude-6/) - Size / Dimensions (https://fr.wikipedia.org/wiki/Taille_apparente) - Distance (l.y / a. l.) - RA (Right Ascension) (https://fr.wikipedia.org/wiki/Ascension_droite) - Dec (Declinaison) https://fr.wikipedia.org/wiki/D%C3%A9clinaison_(astronomie) - Constellation (EN) - Constellation (FR) - Constellation (Latin) - Discoverer / Découvreur - Year / Année - Image ## Features ### Version minimale (1) - Start - Stop - Gracefull shutdown (Attention à bien kill les processes en cas d'erreur de connection Mongo) - Lecture d'objet céleste - Quelques routes sans filtrage (saison, magnitude, etc.) - GET only - Population de la base au préalableion pour aider à l'écriture des route - Indiquer les marges d'erreurs pour chaque colonne au max - Donner une métrique de complétude pour chaque colonne - Gestion du cache ### Version idéale (2) - Schéma des tables plus complexes (plusieurs tables) - Action - GET avec filtrage - POST - UPDATE - DELETE - Ajout de galaxie - Test unitaire sur : - API - CRUD ## Vision de la stack : - Antonin : - BDD : Postgre (+ SQLAlchemy) / Mongo (à voir avec les données) - API : Flask - Tests : pytest / unittest - Charles : - BDD : Postgre / Mongodb / Tinydb (https://tinydb.readthedocs.io/en/latest/index.html) - ORM : SQLAlchemy/Jardin/Pymongo - API : FastAPI ou Flask - Test unitaire : pytest - Brendan : - BDD : PostgreSQL (Perso je vois pas l'interet d'un Mongo ici) - API : Flask / FastAPI - Test unitaire : je fais pas de tests ._. ### Routes #### GET /catalog **Description :** Get the list of all galaxies and star clusters. **Parameters :** page=1, limit=10, season=null #### GET /catalog/{id} **Description :** Get a specific astronomic element by it's id #### POST /catalog/add **Description :** Insert an entry #### GET /discoverers **Description :** Get the list of all discoverers : Messier, Bévis, Bode, ... **Parameters :** page=1, limit=10 #### GET /discoverers/{id} **Description :** Get information about the discoverer ## Déploiement - Google Cloud Run : https://alexolivier.me/posts/deploy-container-stateless-cheap-google-cloud-run-serverless - Heroku - Netlify --- # Meta data - Biography data for 'Decouvreur' on Wikipedia - Marge d'erreur par colonne : http://messier.obspm.fr/xtra/supp/m_NED.html#m50 - A scraper : http://ned.ipac.caltech.edu/cgi-bin/objsearch?search_type=Obj_id&objid=259433&objname=1&img_stamp=YES&hconst=73.0&omegam=0.27&omegav=0.73&corr_z=1#ObjNo1 - Redshift pour les galaxies du catalogue de Messier : http://messier.obspm.fr/xtra/supp/redshift.html - PDF Catalogue de Messier : http://www.faaq.org/clubs/straymond/docs/messier.pdf - API SIMBAD : http://simbad.u-strasbg.fr/guide/simbad.htx - Images célestes NASA : https://www.nasa.gov/content/goddard/hubble-s-messier-catalog - Events astonomie : https://ipgeolocation.io/documentation/astronomy-api.html --- ## Modèle relationnel de la base de données Ce modèle décrit les champs de la base de données **Les clés primaires sont en gras** *Les clés étrangères sont en italique* #### Table : object - **id** - messier (M61, ...) - ngc (NGC 9176) - magnitude - size - *season_id* - *object_type_id* - *discoverer_id* #### Table : object_type - **id** - type (Nebula, Open Cluster, ...) #### Table : season - **id** - name (Winter, Summer, Autumn, ...) #### Table : discoverer - **id** - firstname - lastname - biography