Thanks to visit codestin.com
Credit goes to github.com

Skip to content

lmanuel/iniquity

 
 

Repository files navigation

Iniquity

This is the re-imagining of the iconic Iniquity Bulletin Board Software.

-$a. ------------------ .a$ ---------------------------- %$!, ----------------%
 `$¸   .%$$^¸$$aa.     .¸$`        .        .a$a$$.      `¸$%  $a$.        .
-.aaa$ $$$$'- $$$$$.- $aaa. -.a%$^"$$aa -- .$$$$$'- $$a. $aaa. `$,$ ----------%
;$$$$',a$a$  d$%$$$$$,'$$$$;$$$$$  $$$$$., $$%$$"  d$a$$ '$$$$; $$$   .a%$  $$a
:$$$$;$$$$%; Z$$$$$$$$;$$$$:$$$$$. $$$$^$,;$$&$$   Z$$$$,;$$$$.a$$$a..$$$   $$$
.$$$$ `$$$$.  $$$%$$$' $$$$.`$$$$  $$%$$$$ `$$$$.   $%$$$ $$$$""$$$" $$$$:  a$$
 `$$$a.$$%$   $$$$$$';a$$$`  `¸$$aa$$$$&$': `$$$$a. $$$$'a$$$`.$$'$  $$$$;  $$$
%-----.------ $$$$'--------------- $$%$$' -- `¸$$$$$%$¸' ---- $$¸$a. `"$&$$//$%$
dz      .   .:'¸'     .        .   $$$$'     .        .       `¸$$$$y.     `$$&
%--------- a`-----------.--------- $$¸' -----.------------.---------------- $$$
   .      !a    . .    .      .   .:'   .  .                  .        .:.a$$$¸
.      .  '$a,          .        a` .   'a          .   .             s` .  . .
      .    ¸$Aa         .       !a       a!      .    .         ..   %s      .s
   .         ¸¸'     . .        '$$Aa.aA$$'        . .               `!$%a.a%//$
==============================================================================
   t h e    i n i q u i t y    b u l l e t i n   b o a r d   s y s t e m
==============================================================================

Release Quality Gate Status lerna Discord

Introduction

Some guidng thoughts surrounding the idea of a new Iniquity BBS

  • A BBS software framework that is geared towards developers and modders.
  • Make it easy for sysops to develop and deploy BBS applications.
  • Easily network files, messages and other forms of communication between other BBS applications.
  • What you see in xterm, NetRunner, SyncTerm, EtherTerm or qodem is what you see in a web browser.
    • Though the ability to do interesting things specific to terminal/web should exist.

Getting started

Your development environment should contain something like this, or similar

  • macOS / Windows / Linux required
    • These modern operating systems are currently supported.
  • Docker Desktop for macOS / Windows or Docker Machine required
    • The Iniquity BBS runtime is executed inside of a Docker container for portability.
  • Node.js & NPM required
    • The Node community tools are used for TypeScript transpiling and Iniquity package management.
  • Visual Studio Code recommended
    • This repository is specifically tuned to take full advantage of this IDE.
  • Moebius recommended
    • The ideal choice for working with ANSI/ASCII/PETSCII/AMIGA artwork.

Developing your own iniquity bbs

npm install -g @iniquitybbs/cli

Then...

iniquity init --name MyBBS --template euphoria

Then start iniquity

iniquity start

For further development and customization of your iniquity bbs, it's recommended that you use VS Code. Open up your bbs directory in VSC to take advantage of the development tooling made available by this project.

An example script representing a simple iniquity bbs

const iq = new Iniquity({ basepath: "/iniquity/core/assets/" })

const welcomeArt = iq.artwork({ filename: Assets.sm_iniq2 })
welcomeArt.render({ clearScreenBefore: true, speed: 100 })

iq.print({
    text: `You just connected to an iniquity bbs. The artwork you are seeing above is called ${welcomeArt.filename} It's still pretty new. Likely has bugs. Real talk, it's not even finished. But maybe you'll still think it's cool.`
        .newlines()
        .color("background red")
        .center()
}).pause({ colorReset: true, newlines: 2, center: true })

iq.artwork({ filename: Assets.we_iniq3 }).render({ clearScreenBefore: false })

iq.say("You've connected to a prototype of the new Iniquity BBS Development Platform.".newlines(2).color("bright red").center()).pause()

iq.artwork({ filename: Assets.d_iniq1 }).render({ speed: 100 })
const login = iq.ask("What is your login: ".newlines(1))
switch (login) {
    case "new":
    case "signup":
        iq.artwork({ filename: Assets.newuser1 }).render({ clearScreenBefore: true })

        let newUser = iq.user({
            name: iq.ask("What would you like your handle to be?".newlines(2).color("white")),
            password: iq.ask("And your password?".newlines(2).color("white"))
        })

        iq.say(`Welcome ${newUser.name}. And goodbye!`.newlines().center())
        iq.disconnect()
        break
    default:
        if (iq.user({ name: login, password: iq.ask("And your password?".newlines(2).color("white")) })) {
            alert("somethingsync")
        }

        iq.pause()

        iq.artwork({ filename: Assets.d_iniq1 }).render({ clearScreenBefore: true })
        break
}

Want to learn more? Read the docs!

Development of this project

This is a monorepo project. It uses lerna for management of its packages.

First, clone this repository somewhere on your system

git clone https://github.com/iniquitybbs/iniquity.git

Inside of the iniquity directory, install the project dependencies

Will install all dependencies and bootstrap and build all packages.

npm install

Start iniquity

Inside of VS Code, fire up the development server.

npm start

Discord

Join us on Discord.

Issues

Share your ideas, feedback and bug reports.

Documentation

Read the Iniquity documentation.

About

A re-imagining of the iconic BBS software.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 69.4%
  • JavaScript 25.6%
  • Dockerfile 4.1%
  • AGS Script 0.9%