|
||
---|---|---|
.vscode | ||
assets | ||
config | ||
lib | ||
materials | ||
priv | ||
test | ||
.credo.exs | ||
.formatter.exs | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
LICENSE | ||
README.md | ||
mix.exs | ||
mix.lock | ||
workspace.code-workspace |
README.md
Panoptikum
Warning: This is the branch for the major rewrite of Panoptikum.social
We are
- upgrading to the latest version of Phoenix
- switching from Bootstrap + Bootflat to Tailwind.css
- switching from jQuery to Alpine.js
- switching for certain actions from MVC to LiveView
- switching from master to main branch
Currently the master branch is the one that is still used in production. This branch is work in progress!
Panoptikum (or short Pan) is a webapplication written in Phoenix that represents a podcast discovery and community website.
It is licensed under the AGPL license. The project website with more information on the project can be found at https://www.panoptikum.social If you are interested and want to get in touch, write an email to Stefan.
Setup
📋 Prerequirements
- Make sure you have Elixir installed.
- Make sure you have Node.js installed.
- Make sure you have PostgreSQL installed and running.
- Make sure you have ManticoreSearch installed and running.
📦 Install dependencies
- Install Elixir's dependencies with
mix deps.get
- Install Node.js dependencies with
npm install
inside the assets folder
🛠 Configuration
- Copy
config/dev.secret.exs.example
toconfig/dev.secret.exs
and insert your own data - Copy
config/prod.secret.exs.example
toconfig/prod.secret.exs
and insert your own data
📚 Database and demo data
- Setup your database with
mix ecto.setup
- Import demo data
- Uncompress
materials/pan_dev.sql.gz
- Import data with
psql pan_dev < pan_dev.sql
inside the materials folder - Seed an admin user with
mix run priv/repo/seeds.exs
that has the credentials useradmin
and passwordchangeme
- Uncompress
⏯ Run locally
- Start Phoenix endpoint with
mix phx.server
- Now you can visit
localhost:4000
from your browser. - Login as Admin using username
admin
and passwordchangeme
🌡 Testing
- Run tests with
mix test
✨ Bonus
- Sending a Test Mail from the console
Pan.Email.login_link_html_email("mytoken", "my-email@example.com") |> Pan.Mailer.deliver()
- To rebuilt the search index login as
admin
and visitlocalhost:4000/admin/search/push_all