WildCodeSchool / Lyon-0917-MarketingAutomation

3 stars 6 forks source link

Find and compare a marketing automation software

A Symfony project for the website comparer.pro created by 4 awesome students in the Wild Code School - october 2017 to january 2018! Here, the manual to use this app:

For user

This web application is an amazing tool, very efficient to find softwares for marketing use (especially marketing automation). There are many functionalities :

This is a student’s project. We hope you’ll like using this website!

For Project Manager

As a project manager, you may want to update your database, and you’re right! For you, we imagined a special “moulinette”, very useful.

How to update my database?

You can update your database by upload existing files in App/Resources/data repository. There are 3 files (.csv).

Before trying to update your database :

I have a doubt in the cell format. Where can I find list of columns and what data must I write inside?

That’s a really really good question ! We set a special file for you : app/config/import.yml. In this file you can find all the datas for each files.

Some legitimate words do not find any softwares in research bar, how can I upgrade that?

The research algorithme works with correspondence between the tippen words and the content of each softwares in the database. A part of this correspondence comes from all the text in the database. The other comes from a “synonym file”, this is where you can add content that can be recognize when someone write in the research bar. The file path is “app/config/awesomeSearch.yml”. There you can add synonyms to properties to allow a more complete and accurate research. For each property there is a lyne “Synonymous:” you can add any words you want to this line separated by spaces. Make sure of the accuracy of the words you add: it has a powerful impact on the results of the research.

I want to add a column to the file. How may I proceed?

You can’t just add a column where you want. Refer to the developer section for more informations.

For Developper

The website development is not perfect. This section will help you to understand it and upgrade-it if you desire.

How can I deploy the website? What do I need?

What are all these properties in the database and what are the difference between them and tags?

In a “front point of view”, tags and booleans properties are treated the same way (as tags), you can see all of them together on the listing software view. In a “back point of view”, each booleans properties are converted with the boolAstags service.

How can I add a new property in my database?

To proceed you have to follow these different steps:

How the “moulinette” works? What is the purpose of the “see also” entity?

“Moulinette” import each lines of csv file (if there’s “ok” in the first case of each row), using yapp/config/import.yml file (see How can I add a new property in my database?). Moulinette is just a dumb service, who follow instructions given by yml file : relations, entities, type of column (integer, boolean, text …). When using bin/console import:database, there are different actions:

How the awesomeSearch’s algorithm works?

AwesomeSearch’s goal is to give to users a list of most relevants softwares. Awesome Search Service receive a request, and this is what happen next :

How the “filters” in view’s result works?

Action on controller respond a json file, used in result page to filter results. Each checkbox is linked to one property of softwares, so the filters function gives a filtered list of softwares. This parts use VueJS technology but with no components.

How add new synonyms

The awesomeSearch.yml is a kind of database’s description and also a dictionary. Yaml helps the Project Manager to update this dictionary, no need to change schema or database.

For each boolean property of each entity (except tags and versus):

About Internationalization

Why we did this?

In the Software and Comparison pages you can see tables. Each table correspond to an Entity created and each entity has properties. We wanted to centralize each properties in the same file to evitate

And another good thing; in the future if the website’s owner wants to translate in english or another language he can already do that because it’s already configured.

In the repository app/config/ in config.yml we added => translator: { fallbacks [‘%locale%’] }. We needed a dictionary. So in the Resources we created a field named translations and into this, a file named ‘messages.fr.yml’. We used the ‘trans’ block to mark parts in the template as translatable.

Installing or renewing a let's encrypt OVH certificate on a VPS

Install an SSL certificate

First, go to the root folder with command:

cd /

To get the ssl certificate, we will use automated commands that will directly look for it on the GitHub library. Enter the following command to download Let's Encrypt:

git clone https://github.com/letsencrypt/letsencrypt

It is important that Let's Encrypt is installed at the root of the server, then it can identify your different managed domains on the VPS.

Go to Let's Encrypt folder and enter the following command:

./letsencrypt-auto

The rest of the configuration will simply ask you to confirm the installation of the certificates or to confirm their renewal if another certificate is detected.

Once this action is done, your SSL Let's Encrypt certificates are configured and ready to host in HTTPS world.

Renew an SSL certificate

SSL certificates have a validity period to allow a better security of your sites. Once the validity is complete, you will have to renew it.

Go to Let's Encrypt folder and enter the following command:

./letsencrypt-auto renew

Certificates to be renewed will be detected and you will only need to confirm the action.

Creators

Anne-Laure De Boissieu - https://github.com/al2b

Fanny Perret - https://github.com/fannyperret

Andy Razanamazava - https://github.com/AR6A

Pierrick Reux - https://github.com/pireux

Contributor

Pierre Ammelot - http://pierre.ammeloot.fr/