Go to file
ngoomie c5785301ca Some prep for user sign in implementation + formatting changes
global changes:
  - config now uses snake_case instead of camelCase for config entry
    names
  - closing brackets/braces never occur on their own line
  - there are almost never spaces inside brackets/braces before and
    after the actual content
  - I also removed a bunch of linebreaks I really shouldn't have because
    it just ended up worsening readability, so I'm going to put them
    back tomorrow lol

`lib/CharmBoard.pm` :
  - removed PostgreSQL from the database driver detector, I just wanna
    stick with SQLite and MySQL initially since I'm only really familiar
    with those
  - detect dev environment (from conf file setting) and only shut
    caching off in that situation
  - removed the default layout config option

`lib/CharmBoard/Crypt/Password.pm`
  - renamed subroutines from snake_case to whateverthisiscalled
  - changed what format `passgen` outputs salts and hashes in
  - changed size and factor for reasons I honestly don't remember at
    this point. I should probably recalibrate that properly tomorrow
  - added `passchk` subroutine for verifying of passwords on the login
    screen
  - nice and helpful comments

`lib/CharmBoard/Crypt/Seasoning.pm`
  - this is what used to be `tools/pepper.pl`. it's not currently used
    for anything but it will be used for pepper generation during setup
    if CharmBoard ever gets to that point. also might use it for
    generating salts actually

`lib/CharmBoard/Controller/Auth.pm`
  - realized I had the salt and hash variable assignments the wrong way
    'round like an idiot, so I fixed that
  - added part of signup (password auth)
  - also lots of hopefully-helpful comments?

`lib/CharmBoard/Schema/*.pm`
  - added more params for each column

`lib/CharmBoard/Schema/Session.pm`
  - added `is_ip_bound` and `bound_ip` columns

`database.sql`
  - as for stuff not mentioned in the schema module changes, I added
    `ON CONFLICT` behavior (it's all `ABORT`, which rolls back the
    entire transaction)

i'm tired i'm spenfing too much time either reading about mojolicious/perl or actually programming in them (usually the former atm) i need to chillax and play some videogames
2023-05-07 00:04:15 -06:00
.vscode Some prep for user sign in implementation + formatting changes 2023-05-07 00:04:15 -06:00
lib Some prep for user sign in implementation + formatting changes 2023-05-07 00:04:15 -06:00
script Set up basic registration (but not login, yet) 2023-05-05 22:24:49 -06:00
templates Set up basic registration (but not login, yet) 2023-05-05 22:24:49 -06:00
.gitignore Set up basic registration (but not login, yet) 2023-05-05 22:24:49 -06:00
INSTALLING.md Some prep for user sign in implementation + formatting changes 2023-05-07 00:04:15 -06:00
LICENSE Initial commit 2023-05-03 02:43:57 +00:00
README.md Some prep for user sign in implementation + formatting changes 2023-05-07 00:04:15 -06:00
charmboard.example.conf Some prep for user sign in implementation + formatting changes 2023-05-07 00:04:15 -06:00
database.sql Some prep for user sign in implementation + formatting changes 2023-05-07 00:04:15 -06:00

README.md

CharmBoard

CharmBoard is forum software written in Perl, inspired by AcmlmBoard/its derivatives, the original Facepunch forums, and Knockout.chat. It's intended to be a more "fun" alternative to the bigger forum software suites available today. Though largely, it's just intended as a sort of pet project of mine for now and a way to learn Perl + Mojolicious, and some other modules I've been wanting to learn.

Requirements

  • Perl5 v5.20.0 or higher
  • Mojolicious (website, metacpan)
    • Mojolicious::Plugin::Renderer::WithoutCache — only needed in dev environment
  • DBI
    • DBIx::Class
    • one of two DBD database drivers — see INSTALLING.md for detailed information
  • Authen::Passphrase::Argon2
  • Math::Random::Secure

Installation

Please see INSTALLING.md