EEN is a website available here and this is the source code of the projects
In order to install the project locally and some awesome development you will need to clone all the necessary projects onto your machine
- Vagrant Box:
git clone https://devops.innovateuk.org/code-repository/scm/een/een-vagrant.git
- Service Layer:
git clone https://devops.innovateuk.org/code-repository/scm/een/een-service.git
- Drupal:
git clone https://devops.innovateuk.org/code-repository/scm/een/een-webapp.git een
- Integration:
git clone https://devops.innovateuk.org/code-repository/scm/een/een-integration-tests.git
The documentation of each project is available in each project repository
The Vagrant project will build a virtual machine on the developer computer ready to use and host the website
The Service Layer project is a bridge between the drupal application and the external tools (Salesforce/Merlin/etc.)
The Integration project is a test suite to test that the website pages are displayed correctly
Drupal (See below)
The Drupal project use Drupal version 8.2
-
Custom Theme An EEN Theme is available here. All the javascript, sass and templates are in the code source In order to compile the js and sass files we used a gulp manager. To run all the required steps you can simply execute
gulp
in the root folder of this project. This will compile the file into a dist folder to make it available to the website -
Custom Modules The following module have been created to handle the project requirements:
- events: This module is responsible for retrieving and displaying the een events
- opportunities: This module is responsible for retrieving and displaying the een opportunities
- service_communication: This module management insures communication with external api and service layer
- een_common: This module handles the shared component used by the different modules
-
Modules This is the list of modules installed on the drupal project:
- site_banner
- twig_extensions
-
Database The full dump of the database is loaded on the deployment if any changes has been made to it. It is planned to be used a migration tool in the future when the website will be live and modification to the schema or data wants to be made.
In order to deploy the project to an environment, we are using a jenkins instance. A jenkins file is use to define the steps of deployment below:
- Code: update the code with the latest changes
- Npm: sync all the npm modules
- Gulp: run all the gulp tasks (compile css/js/image/etc.)
- Composer: update the project dependencies
- Unit Test: run the unit test suite
- Package: compile the files
- Remote Deploy: Deploy the project to selected environment - here integration_v3
- Integration Test: Run the integration test suite
If one of the steps above fail for any reason, the deployment will stop.
All the deployment script are present inside this project under the build folder
To help the user to use the project locally a Makefile has been created to run command fast. Here are most important:
- make install: install/re-install completely the project
- make cc: clear the cache
- make test: run the unit test
- make install-module: Install the custom modules
- make delete-module: Delete the custom modules
- make export-sql: Export all the database to a file
- make update-entity: Update the database in case of wrong schema
At the moment we are using git flow to version the work we have done. Nothing has been released to master as develop is our main branch and that we do not have a live environment.
Here is a quick help to use git flow:
git flow feature start FEATURE_NAME # This create a new feature branch
git flow feature finish # This release the feature branch to develop
Website | Vagrant Project | Service Project | Integration Project | Jira | Jenkins