Git Product home page Git Product logo

forbidden_lands's Introduction

Forbidden Lands RPG Companion App

Welcome to the Forbidden Lands RPG Companion App documentation!

This repository hosts a personal project aimed at enhancing your experience while playing the thrilling role-playing game Forbidden Lands. Whether you're a player or a Game Master (GM), this app is designed to enrich your sessions and streamline certain aspects of gameplay.

About the Project

This project is created with a passion for the Forbidden Lands universe. While it's not intended to be a fully-integrated GM companion, it serves as a valuable tool to aid GMs and players alike in various aspects of the game.

Demo access

You can find a demo instance at this address: forbidden-lands-companion.fly.dev.

Contributions

Contributions to this project are more than welcome! If you're interested in adding your expertise and insights, please ensure that your contributions align with the project's guidelines.

Features

During your Forbidden Lands RPG sessions:

  • Manage View for GMs:
    • Keep track of game time (I implemented the custom Forbidden Lands calendar as described here),
    • Set the perfect ambiance with background music (music not included),
    • Manage stronghold sheet,
    • Manage stronghold resources with custom rules,
    • Register group events.
  • Dashboard View for Players: For players, the app provides a wide map view, the ability to immerse themselves in the ambiance, and a clear way of the calendar. This view is ideally suited for projection using a beamer or a computer screen, making your game world come to life.

Beyond the tabletop sessions:

  • Event Tracking: Easily record and keep track of events that unfold throughout your campaign. Stay organized and never miss a pivotal moment.
  • Event Browsing: Browse through past events, reminisce about your adventures, and use this feature as a reference for your ongoing gameplay.
  • Adventure Sharing: Share the story of your adventure to the world.

Installation

This project uses Elixir and the web framework Phoenix/LiveView.

Minimal Setup

To get started, follow these steps:

  • Install dependencies with mix deps.get.
  • Create and migrate your database with mix ecto.setup. Make sure you have PostgreSQL installed and configured. Default configuration for the development environment can be found in config/dev.exs.
  • Start the Phoenix endpoint with mix phx.server or within IEx using iex -S mix phx.server.

You can access the app by visiting localhost:4000 in your browser.

Adding Music Playlists

Please note that due to copyright issues, no music files are provided in that repo. You can set up your own playlist:

  1. Create a musics folder within the priv/static directory.
  2. Inside the musics folder, create subdirectories for each playlist. The name of each subdirectory will be the name of the playlist.
  3. Place your mp3 files within these subdirectories to represent the music for each playlist.

After setting up your playlist folders, run the following mix command to generate the mood.txt file:

mix fl.process_playlists --source [source_directory] --target [target_file]

Accessing the Admin Panel

During development, the admin username is admin, and the admin password is 1234. You can modify these credentials in the config/dev.exs file as shown below:

# User and password for admin auth
config :forbidden_lands,
  username: "admin",
  password: "1234"

Production

If you intend to deploy the app, please refer to the official Phoenix deployment guides.

However, the app is already configured for fast deployment on fly.io. An example fly.toml configuration file can be found.

Admin Panel Access in Production

During deployment, you'll need to set environment variables to access the admin panel. Here's an example of how to do it for fly.io:

fly secrets set ADMIN_USERNAME={some_user}
fly secrets set ADMIN_PASSWORD={some_password}

forbidden_lands's People

Contributors

abdelaz3r avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

forbidden_lands's Issues

Protect instance manage

Protect instance manage view with user/password.

  • Add user field to instance struct (?)
  • Add password field to instance struct
  • Create user_auth plug to protect manage view
  • Update admin form (create instance) to give a starting password
  • Update admin list to reset the password to null
  • Update instance manage setting view to update the password

Translate

  • Setup gettextwith supportde langages
  • Create a lang selector
  • Translate everything
  • Investiguate redirect bug

Overlay media cannot be removed

Describe the bug
Added media does not being removed

To Reproduce
Steps to reproduce the behavior:

  1. Add media overlay
  2. Click on button to remove it

Expected behavior
Media overlay should be removed

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop:

  • Elixir 1.12.2

Infinite loading in story view

Paginate properly events loading and create a infinite loading for that view.

That might be applicable to instance manage event too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.