Skip to content

panverma/podcastpedia

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 - 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

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 or 5.6 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

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 "test-dev@podcastpedia.org/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 "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

About

The open source podcast directory - Podcastpedia.org

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 76.9%
  • CSS 12.4%
  • JavaScript 10.3%
  • Other 0.4%