{"id":29224574,"url":"https://github.com/sing-group/evoppi-backend","last_synced_at":"2025-07-03T06:07:24.444Z","repository":{"id":29569685,"uuid":"122088342","full_name":"sing-group/evoppi-backend","owner":"sing-group","description":"Backend for the EvoPPI application","archived":false,"fork":false,"pushed_at":"2023-02-22T08:02:18.000Z","size":1203,"stargazers_count":0,"open_issues_count":4,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-10-20T23:08:42.709Z","etag":null,"topics":["comparative-analysis","interactome","protein-protein","protein-protein-interaction","web-application"],"latest_commit_sha":null,"homepage":"http://evoppi.i3s.up.pt/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sing-group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-02-19T16:18:44.000Z","updated_at":"2023-10-20T23:08:43.531Z","dependencies_parsed_at":"2023-01-14T15:12:40.943Z","dependency_job_id":"852e0af4-17c1-476b-8891-324bba21bc49","html_url":"https://github.com/sing-group/evoppi-backend","commit_stats":null,"previous_names":[],"tags_count":14,"template":null,"template_full_name":null,"purl":"pkg:github/sing-group/evoppi-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fevoppi-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fevoppi-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fevoppi-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fevoppi-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sing-group","download_url":"https://codeload.github.com/sing-group/evoppi-backend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sing-group%2Fevoppi-backend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263271501,"owners_count":23440396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comparative-analysis","interactome","protein-protein","protein-protein-interaction","web-application"],"created_at":"2025-07-03T06:07:23.593Z","updated_at":"2025-07-03T06:07:24.430Z","avatar_url":"https://github.com/sing-group.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EvoPPI Backend\n\nEvoPPI allows the easy comparison of publicly available data from the main Protein-Protein Interaction (PPI) databases for distinct species. EvoPPI allows two types of queries: (i) same species comparisons, for those queries involving two or more interactomes from a single species, and (ii) distinct species comparisons, for those queries involving two or more interactomes from two distinct species.\n\n## Development\n### Running the application\nThe application has been configured to be easily run locally, by just invoking\na Maven command.\n\nTo do so, Maven will download (if it is not already) a clean WildFly\ndistribution to the `target` folder, configure it, start it and deploy the\napplication on it.\n\nThis makes very easy and straightforward to manually test the application.\n\n#### Configure a local MySQL\nTo execute the application you need a MySQL server running in `localhost` and\nusing the default port (3306).\n\nIn this server you have to create a database named `evoppi` accessible for the\n`evoppi` user using the `evoppipass` password.\n\nThis can be configured executing the follow SQL sentences in your MySQL:\n\n```SQL\nCREATE DATABASE evoppi;\nGRANT ALL ON evoppi.* TO evoppi@localhost IDENTIFIED BY 'evoppipass';\nFLUSH PRIVILEGES;\n```\n\nOf course, this configuration can be changed in the POM file.\n\n#### Building the application\nThe application can be built with the following Maven command:\n\n```\nmvn clean install\n```\n\nThis will build the application launching the tests on a **Wildfly 10.1.0**\nserver.\n\n#### Starting the application\nThe application can be started with the following Maven command:\n\n```\nmvn package wildfly:start wildfly:deploy-only -P wildfly-mysql-run\n```\n\nThis will start a **WildFly 10.1.0**.\n\n#### Redeploying the application\nOnce it is running, the application can be re-deployed with the following Maven\ncommand:\n\n```\nmvn package wildfly:deploy-only -P wildfly-mysql-run\n```\n\n#### Stopping the application\nThe application can be stopped with the following Maven command:\n\n```\nmvn wildfly:shutdown\n```\n\n### REST API documentation\nThe REST API is documented using the [Swagger](https://swagger.io/) framework.\nIt can be browsed using the [Swagger UI](http://petstore.swagger.io/)\napplication to access the following URL:\n\n```\nhttp://localhost:8080/evoppi/rest/api/swagger.json\n```\n\n## Server configuration\n\nEvoPPI can be installed in your own server. We recommend using a WildFly 10+\nserver. In addition, a Docker installation listening in a TCP port is required.\n\nTo install your own EvoPPI instance you should follow these steps.\n\n### 1. Configure your WildFly\n\nIn the `additional-material/wildfly10/standalone.xml` file you can see a sample\nconfiguration. This file includes the security, email and naming bindings\nrequired by the application.\n\n### 2. Create the database\n\nA SQL script for MySQL to create the structure of the database required can be is\navailable at `additional-material/db/evoppi-mysql.sql`.\n\n### 3. Populate database (optional)\n\nThe `additional-material/db/` directory contains several files to test EvoPPI:\n\n- `evoppi-mysql-data.sql`: users and database version.\n- `evoppi-mysql-data-genes.sql`: species, genes, interactomes, and predicted interactomes.\n\n\nAlternatively, if you want to add the data of all the species currently supported by EvoPPI,\nyou can also download and import\n[this SQL file](http://static.sing-group.org/EvoPPI/db/sql/2022.04/evoppi.sql.gz).\n\n### 4. Deploy the application\n\nThe last step is to deploy the EvoPPI application in the WildFly server.\n\nPackaged application can be downloaded from\n[here](https://maven.sing-group.org/repository/maven-releases/org/sing_group/evoppi-ear/2.1.0/evoppi-ear-2.1.ear).\n\nThis file can be directly deployed in the WildFly server, for example, using the\nadministration web interface.\n\n## Source code\n\nSource code of this and **EvoPPI Frontend** projects can be found at:\n\n* [EvoPPI Frontend](https://github.com/sing-group/evoppi-frontend)\n* [EvoPPI Backend](https://github.com/sing-group/evoppi-backend)\n\n## Troubleshooting and debugging\n\nSome tips for troubleshooting and debugging issues with the database:\n\n1. [This post](https://stackoverflow.com/a/678310/1821422) shows how to set MySQL to show the last queries being executed.\n2. When loading the complete DB, the following error may arise: `The total number of locks exceeds the lock table size`. Following some of the suggestions of [this post](https://stackoverflow.com/questions/6901108/the-total-number-of-locks-exceeds-the-lock-table-size), it usually works editing the `my.cnf` file to set the following settings:\n\n```[mysqld]                                                                                                                          \nwait_timeout = 31536000\ninteractive_timeout = 31536000\nmax_allowed_packet = 1G\ninnodb_buffer_pool_size = 1G \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsing-group%2Fevoppi-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsing-group%2Fevoppi-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsing-group%2Fevoppi-backend/lists"}