The open source podcast directory - Podcastpedia.org
Java CSS JavaScript Other
Latest commit e6f2dfa Jan 1, 2017 @amacoder amacoder committed on GitHub Update year in license

README.md

podcastpedia

Podcastpedia.org - the open source podcast directory

Project structure

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

Setup Guide

(~15min of which 13 min MySql installation)

Install and run the Podcastpedia.org website on your local machine

Prerequisites


Download project

git clone https://github.com/PodcastpediaOrg/podcastpedia.git

Prepare MySql Database

Install MySql 5.5 and above

  1. Download MySQL Community Server version 5.5, 5.6 or 5.7 for the platform of your choice.
  2. Install the MySQL Server
    1. Installing MySQL on Microsoft Windows
    2. Installing MySQL on Linux
  3. Optional - install MySQL Workbench for easy DB development and administration
  4. Setup MySQL configuration file
    1. 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
    2. 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

  1. You will be using the admin user setup at installation, to prepare the development database
  2. MySql is installed by default on port 3306; should you use another port number please adjust that throughout the Maven plugin configuration files

Prepare development database with the sql-maven-plugin

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


Build project

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.


Run the website (web-ui module)

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


Contributing

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.

License

MIT © Codingpedia Association

Sponsors

Many thanks to JetBrains for providing us with an open-source license for IntelliJ IDEA