Ecuadorian Semantic Repository of Ecuadorian Academics that allows the discovery of common research areas. The platform is based on the Apache Marmotta Linked Data Platform. If you want to see the lastest developments, just build the master branch or jump to rediclon.cedia.edu.ec
Quick summary
REDI is the acronym for Repositorio Ecuatoriano de Investigadores. Before the project was called Watiqay Khuska, which is a quechua phrase that means "Research together".
Version
Sponsors and Contributors
Computer Science Department - University of Cuenca
System requirements
- Java JRE 1.7.0_45 or superior
- Maven 3 or superior
- Nodejs (for the npm package manager)
- 1GB main memory
- Java Application Server (Tomcat 7.x or Jetty 6.x)
- Database engine(PostgreSQL, MySQL - if not explicitly configured, an embedded H2 database will be used)
Summary of set up
Download, fork or clone the repository from the Repo URL
clone https://github.com/ucuenca/redi.git
Deployment instructions
- Open a Terminal window and Go to the repository folder ${wkhuska.home}
- Execute ** mvn package install* (If you need a fast deplyment you can use the parameters -DskipTests=true -Dpmd.skip=true)
- The deployed application will be installed In the directory ${wkhuska.home}/webapp/target/marmotta.war
- If you need a faster deployment (e.g. testing purposes) you can go to the directory ${wkhuska.home}/webapp and execute the following command from a terminal window mvn tomcat7:run
Marmotta Configuration
If you're deploying an instance using your own Application Server you need to set the Marmotta Home Directory. (e.g. in Tomcat 7 you can set it on the setenv.sh configuration file as
*export MARMOTTA_HOME=/path/to/marmotta/home*
Database configuration
Marmotta comes configured with an H2 Embedded Database instance, but for production it is recommended that you configure a Database Engine. Before using the application instance you need to create both a Database Schema and a User on your preferred database Vendor, and configure it in Marmotta through the Admin interface.
Develop a new module
To create a new module you can make a copy of the example module base-module or you can create a new project using the default Marmotta maven artifacts:
mvn archetype:generate -DarchetypeGroupId=org.apache.marmotta -DarchetypeArtifactId=marmotta-archetype-module
We have defined some rules to the development cycle of new platform modules:
You MUST follow the same pom schema as the base-module.
You MUST follow the Java code Conventions when programming a new module.
You MUST develop test cases for your module.
Your developed classes MUST pass the PMD rules defined for the platform development.
Develop a web module or interface
Any new frontend or web interface must be deployed using the webapp project on the repository. You have a base frontend example on src/main/webapp/wkhome folder that you can clone to develop your own custom fronted app. The base technology stack that you should use for developing and testing is:
- Nodejs
- Bower
- AngularJS
- Bootstrap
- jQuery
- Karma (unit tests)
- Protractor (End to End tests)
We have defined some rules to the development cycle of new web platform modules:
The frontend libraries are defined in the src/main/webapp/bower.json. If you need to use new libraries, you can extend its definition using the bower package manager.
You MUST follow the Javascript code Conventions when programming a new web module.
You MUST develop unit tests and end to end tests for each feature you define in the frontend. The tests are built using Jasmine framework. You can find more information here
Code review
You can fork the repository to develop you own custom solutions or to improve the existing ones. Then, you can send us a pull request. The admin will review the code and will aprove it if it accomplish the established rules for the development cycle.
Other guidelines
We are improving our software development cycle. Nowadays, some developers of the department are implementing the manifestos defined for Agile Development and Continuous Delivery. We are currently working with Codeship to guarantee the continuous integration of the platform. In the future we will also offer the Continuous Deployment of our solution.
- Repo owner or admin