Skip to content
This repository has been archived by the owner on Sep 4, 2019. It is now read-only.

CodepediaOrg/podcastpedia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

podcastpedia

[Podcastpedia.org] - the open source podcast directory - website was decommissioned

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


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
  3. Installing MySQL on Microsoft Windows
  4. Installing MySQL on Linux
  5. Optional - install MySQL Workbench for easy DB development and administration
  6. Setup MySQL configuration file
  7. 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
  8. 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)

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"

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


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