[Podcastpedia.org] - the open source podcast directory - website was decommissioned
Podcastpedia is a multi-module Maven project structured in the following way:
+---podcastpedia
| +---common
| +---core
| +---web-ui
| +---api
| +---sql
| +---admin
- podcastpedia - the parent project
- common - contains domain objects and types used by the other modules (core, web-ui, api & admin)
- core - code for database access and business layer; it support currently both the api and web-ui modules.
- web-ui - the web application that's actually behind the Podcastpedia.org website
- api - REST api supporting core functionalities for the application(in progress)
- sql - contains database setup scripts and useful sql statements
- sql-migration - contains database delta scripts; uses MyBatis Migrations
- admin - administration web application used to insert/update/remove podcasts from the directory; implemnted with Spring MVC
(~15min of which 13 min MySql installation)
-
MySQL 5.5, 5.6 or 5.7(recommended)
-
JDK 1.7 or JDK 1.8
- Java SE Development Kit 7 Downloads
- set
JAVA_HOME = jdk-install-dir
in your environment variables
-
Maven 3.*
- Download Apache Maven
- Maven installation instructions - basically extracting the archives and settings some environment variables
- Download Apache Maven
-
(optional) Tomcat 7+ to be able to run the application on a standalone Tomcat server
-
(optional) IDE ( preferred Eclipse 4.3+ or IntelliJ)
- [The Eclipse Project Downloads] (http://download.eclipse.org/eclipse/downloads/)
- [IntelliJ IDEA] (https://www.jetbrains.com/idea/download/)
git clone https://github.com/PodcastpediaOrg/podcastpedia.git
- Download MySQL Community Server version 5.5, 5.6 or 5.7 for the platform of your choice.
- Install the MySQL Server
- Installing MySQL on Microsoft Windows
- Installing MySQL on Linux
- Optional - install MySQL Workbench for easy DB development and administration
- Setup MySQL configuration file
- For Windows place the configuration file where the MySQL server is installed - the my.ini file from above is an example used on a Windows 7 machine
- For linux you need to use .cnf files. You can see in this blog post -Optimizing MySQL server settings - how the MySQL database is configured in production for Podcastpedia.org
Note
- You will be using the admin user setup at installation, to prepare the development database
- MySql is installed by default on port 3306; should you use another port number please adjust that throughout the Maven plugin configuration files
Change the username/password in the pom.xml corresponding to your root user, configured at installation time:
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306</url>
<username>root</username><!-- use your installation admin user-->
<password>root</password><!-- user your installation admin user's password-->
</configuration>
First step is to prepare the "podcast" user and the podcast_db with the following maven command
mvn install -Pprepare-db -pl sql
and the second step is to import the data into the database
mvn install -Pimport-db -pl sql
That database setup should be ready now. You can choose to setup the database via the MySql console - more details is to find in the sql README.md
mvn clean install -DskipTests=true
Note the first time the build process takes longer, because of the frontend-maven-plugin used to generate the .css and .js files.
Jetty (Maven Jetty Plugin)
Execute the following command in the parent/root directory
mvn jetty:run -pl web-ui -Denv=dev
Access homepage at http://localhost:8080 - "user/password" for login "[email protected]/test"
Tomcat (Apache Tomcat Maven Plugin)
Execute the following command in the parent/root directory
mvn tomcat7:run -pl web-ui -Denv=dev
Access homepage at http://localhost:8080 or https://localhost:8443 for SSL access - "user/password" for login "[email protected]/test"" or
If you wish to contribute to this website, please fork it on GitHub, push your change to a named branch, then send a pull request. If it is a big feature, you might want to start an Issue first to make sure it's something that will be accepted. If it involves code, please also write tests for it.
Many thanks to JetBrains for providing us with an open-source license for IntelliJ IDEA