Podcastpedia.org - the open source podcast directory
Podcastpedia is a multi-module Maven project structured in the following way:
+---podcastpedia
| +---common
| +---core
| +---web-ui
| +---api
| +---sql
| +---admin
- podcastpedia - is 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
- 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 or 5.6
-
JDK 1.7 (if you want to use Jetty 9 with the jetty-maven-plugin from project)
- 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 or 5.6 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
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 "test-dev@podcastpedia.org/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 "test-dev@podcastpedia.org/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.