 Bonjour tout le monde, je suis Alexey, je suis l'un des deux corps du membre de Monika. Je suis ici sur le biauf de Regis Freil, qui nous a vu, c'est son corps, le membre de Monika et le créateur. Je vous présente Monika, le manager de la relation personnelle, et ensuite je vais vous partager des détails sur le projet. Donc l'idée avec Monika, c'est que vous vouliez rappeler des choses sur votre contact, comme l'information personnelle, les relations, les familles, etc. Vous vouliez rappeler les activités, les notes, mais comme moi, votre mémoire n'est pas très parfait. Donc vous vouliez rappeler ces choses. Mais où est-ce que vous vouliez rappeler ces détails ? Vous pouvez laisser ces détails sur Facebook ou Google, mais ce n'est pas ce que nous voulions faire sur notre file ou un autre contact-manager, mais ce n'est pas parfait. Donc l'answer est Monika. C'est pour les contacts que vous soyez, et pour les contacts que vous vouliez rappeler des choses. Donc c'est pour les amis, les familles, les collègues, etc. Mais ce n'est pas une réseau sociale. Les données que vous vouliez régister ne seront jamais sharedes avec d'autres utilisateurs de l'instance. Ce n'est pas un système de file hosting, il y a de plus de softwares, et ce n'est pas un robot avec des AI. Les souvenirs que vous allez donner, c'est seulement envoyé parce que vous voulez envoyer. Les features de Monika, vous pouvez voir comme un livre d'adresse de votre téléphone. Mais avec plus de features, vous pouvez mener des contacts et ajouter une relation entre les contacts. Vous pouvez ajouter des birthdays, des informations de contact, des avatars, etc. Vous pouvez ajouter des souvenirs, comme un birthday ou un stay-in-touch. Vous pouvez ajouter des tasks, des notes, des activités, des live-events. Vous pouvez ajouter des déps de votre propre, ou des gifs que vous avez créés. Vous pouvez ajouter des adresses géolocalises. Vous pouvez avoir des informations de l'air, des documents d'application, d'expo, des v-cards d'un contact. Et des conversations, des phone calls, et même d'un journal personnel. Nous avons aussi un West API. L'application a 15 locaux. Nous avons aussi implementé l'authentication multi-factor, comme 2FA ou Ubikiki. Et voilà. Ça ressemble à ceci. C'est une application web. Vous pouvez voir un détail sur le contact. Nous avons plus de pages, mais il y a encore quelque travail à faire. Nous voulons improvement de l'interface. Recently, we implemented Cardav and Cardav. We need your feedback on this because we are not sure it works well. But we will try it. We want to add notion of groups of the ME card. And we also want to improve security because it's very important. We don't want to leak the data outside. A word about the mobile application. We know it's a huge demand by a lot of users. Today we do not have a mobile application. We started to create an application called Chandler. But it's maintained. It's no longer in the process. So we need you. So if you are interested in developing this mobile app, you can contact us. So how to use it? You have two options. The first one is use our hosted version on app.monicaHQ.com. On this instance, there is no user tracking, no Google analytics, or I don't know, like on the main monicaHQ.com. Or you can install it on your own server using the sources or the Docker image. Or there are other solutions. And I'm sure you can handle it if you want to try. OK. So now some details about the project. But first of all, what is made of? It's a Laravel-based application. So PHP, if you know. A lot of blades, templates, and view.js pages and CSS. The application, the ID comes from Moegis and was the most voted story on Hacker News in 2017. In 2018, it was for two months the most PHP train in repo. Aujourd'hui, we have 6,600 stars on GitHub. It was one of the open source rookie of the year 2018. And we have more than 140 contributors. Our development guidelines is like this. So we prefer to ship little features often and improve it over multiple iterations rather than release one big feature at once. So we prefer to do it like this. What it is to work on an open source project like ours. What we learned is today we have a lot of GitHub issues and it is difficult to solve them. What we learned is you don't want to agree to everything. You do what you want with your project. It is what we try to do. So it's like the same on the pull request. We do not want to accept every pull request because sometimes the code will be babysitted by the owner after a match. So sometimes even if the code is really good and the quality is here, we have to reject it but it's heartbreaking but sometimes we must do it because we want to do what we want with our project. So what we are trying to do is an application for everyone, an application fully tested and an application with which we can have fun. So we want to learn and have fun. So an application for everyone has to be simple, fast and reliable. It's the keyword we have in mind when we are trying to do the interface. But it's not all. Everyone means everywhere too and a word about the local. Today we support 15 locals with country specificities and how to do that. The internationalization process we use an external tool called Coding. Coding has been very helpful for us because the translation process is very hard to maintain. And we have special attention to localize a refund for long specificities, country specificities for collation and for the direction from right to right to left. It's important for us because we are translated in two languages with R2L direction. And what it is to support the RTL it's not simple as adding the deer attribute on the HTML tag. Example here you see the buttons on the right top are right aligned and if we just do that in Hebrew the buttons are not aligned. And the reason is the class here is not right so we have to first detect the language and direction we have two CSS files a main file on the left with an HTMLD property and a second file that redefines this HTMLD property so then we can use this HTMLD property and use the right CSS file to fix the alignment. So we also want a fully tested application what you need to have a fully tested application is obviously sources, tests you want to run the test with code coverage and report. In Monica we have a test unit and browser test we have a CI we use SQL CI the unit test use PHP unit and PHP DBG and the browser test use Laravel Desk and we have live code coverage on the little server and for the reporting we use Sonacloud it's a very useful tool currently we have 68 PHP person code coverage as you can see we have which peak and the next person are difficult to gain but we can do it our current CI use SQL CI workflow of SQL CI is very great we use a docker image and we create a docker image called central pack to test Monica so we have two workflows build and test and deploy workflow and it works it's very great and what about the recent improvement from Taylor Otwell only by adding this line on the create application traits we gain about 30% time on the running test on the unit test so it's a very nice optimization so all this this CI work thanks to this software this this company it's very useful for us to have all this company for the open source ok to finish we want to have an application we have fun developing a lot of applications looks like this so the controller in the center needs data from the database and behind behind there is a model but if the controller is a view controller or an API controller sometimes they need the same data the same code to call the operation on the database so the solution we implemented on Monica is using services the logic will be handled by the same services if it's a view or an APL controller here you can see an example of one service it's a service to create an address you can see and the view controller use the service to create the address and the API controller use the same service to create the same to do the same thing so it's handled by the same service behind and it's very nice to develop like this so we have fun in developing this application to finish if you want to help us we always need help for the code or to discuss the features on github issues we also want help and feedback about the interface if you want to add a new local fix the translation you can do it on the coding project of Monica and like I said we need help about the mobile application and that's it so if you want more information you can go on monicahtu.com and thank you for your attention if you have some questions