Giter Club home page Giter Club logo

enigma-bbs's Introduction

Oh, hello!

A few tidbits about me:

  • Father to an amazing daughter
  • Coder
  • Textmode is king!

Anurag's GitHub stats

enigma-bbs's People

Contributors

abutbul avatar christiansacks avatar cognitivegears avatar coolacid avatar davestephens avatar dependabot[bot] avatar frozenfoxx avatar georgzoeller avatar haliphax avatar jonmr avatar louisnorthmore avatar mikeralphson avatar notepid avatar nuskooler avatar parkbanks avatar richinseattle avatar rjmooney avatar semperfu avatar snazzware avatar squintgit avatar stack-fault avatar voipmeister avatar

Stargazers

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

Watchers

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

enigma-bbs's Issues

Implement FidoNet FTN import/export

FidoNet FTN style import/export needs to be fully implemented. Some experimental import code has been written, but needs quite a bit of restructure. Gaze can be utilized to monitor for FTN packet arrivals.

Theme creation

Is there a template somewhere which will help with the creation of a theme? Some information on this would be great.

enigma-bbs organization

May want to create an enigma-bbs org, and re-locate the code to that org... If you're interested in using the bbs-io org, I invited you with full access.

It will make it easier to add contributors.

IRC Channel

It may be worthwhile to have/document an IRC channel for BBS support, either via freenode, irc.synchro.net or efnet.

ES6/7 support

May want to consider the use of babel with gulp so that you can use ES6/7 features in the codebase.

It will mean a build step for changes, but could simply check in the built version in npm, and have the source in core-src building to ./bbs.js (not checked into github) or use babel-node as an npm start-dev script that will run directly against the source.

Exception thrown in door.js if encoding is not supported by Node

Due to recent versions of Node preventing iconv-lite extendNodeEncodings(), an exception is thrown when door.py attempts to call setEncoding() if the encoding is not supported by Node itself (e.g. 'cp437')

Stack:

< string_decoder.js:24
<     throw new Error('Unknown encoding: ' + encoding);
<           ^
< Error: Unknown encoding: cp437
<     at assertEncoding (string_decoder.js:24:11)
<     at new exports.StringDecoder (string_decoder.js:38:3)
<     at Socket.Readable.setEncoding (_stream_readable.js:206:33)
<     at Terminal.setEncoding (/home/bashby/dev/enigma-bbs/node_modules/ptyw.js/lib/pty.js:288:17)
<     at Door.run (/home/bashby/dev/enigma-bbs/core/door.js:50:7)
<     at AbracadabraModule.runDoor (/home/bashby/dev/enigma-bbs/mods/abracadabra.js:157:16)
<     at AbracadabraModule.finishedLoading (/home/bashby/dev/enigma-bbs/mods/abracadabra.js:178:7)
<     at complete (/home/bashby/dev/enigma-bbs/mods/abracadabra.js:126:11)
<     at /home/bashby/dev/enigma-bbs/node_modules/async/lib/async.js:721:13
<     at _toString (/home/bashby/dev/enigma-bbs/node_modules/async/lib/async.js:52:16)

Files base

Files Base
Meta bug for files base/area.

Features
Not limited to:

  • Standard/expected features
  • FILE_ID.DIZ & DESC.SDI support
  • TBD protocol(s)
  • Additional modern features such as torrent & direct downloads when servers become available
    • Short URLs with n expiration time for direct downloads and/or web based auth/IP detection
  • Upload processing
    • Virus scanners
    • Add NFO
  • ACS controlled access
  • Integration with message area such as "new files" posts

Creating and replying to messages

A few things:

  • Replying to messages should only allow the new message to be entered, not edit the from, to or subject (perhaps this last one, subject, might be editable).
  • Empty subjects should not be allowed.

MaskEditTextView is clunky

The view MaskEditTextView is very clunky. Cursor jumps around, things get out of wack under some scenarios.

Needs a good overhaul.

Provide better quick start & basic information in documentation

Need more documentation, and perhaps one full example of the HJSON file. After running npm install, and running node main.js it will not print anything, and I would not know what to do, or where to check a telnet connection, as I could not find the port to connect to.

Anyway, alpha stage, I guess. Work on it! :-)

Implement MultiLineTextEditView preview mode

Overview

MultiLineTextEditView needs preview mode implemented. This should provide the following at a minimum:

  • RA style pipe codes resolved (e.g. show colors)
  • Basic Markdown resolved (bold, italic, and links)
  • Preview/edit mode should be toggleable
  • Proper ANSI display

Notes on markdown:

bold: bold + colored
italic: /italic/ + colored
link/href: colored

Missing FSE functionality

The help on the message reading refers to commands that do not work. I am guessing it is not implemented yet. But it also breaks the screen. See attached (using iTerm2).

help

Require Node.js 4.2.x+

Update requirements for Node.js to v4.2.x or higher. Currently it's at v0.12.2. Using 4.2.x+ will give the ability to use newer ES6 features.

Databases not initialized on first run

I got it going but had to read through the source a bit to see the folder, just had to create the db folder (also the logs folder) but the db part wasn't super-clear when the error was thrown.

coruscant:enigma-bbs matt$ node main.js
events.js:141
throw er; // Unhandled 'error' event
^

Error: SQLITE_CANTOPEN: unable to open database file
at Error (native)

Create a generic live form validation framework

Overview

A generic live (that is, before submit) form validation framework needs designed & implemented. This would allow for example non-empty usernames, subjects, invalid emails, etc. to be checked and rejected.

Ideas

  • Before leaving a field, call validation method passing data & ID
  • Validation method should be explicit (supplied in view HJSON) and fallback to generic

Document ACS system

The current ACS system needs documented. Mostly of interest now is in relation to message conferences & areas.

New user / apply crashes if no message areas defined

Got it to run, using defaults. Getting this after using "Apply:"

(node) Buffer.get is deprecated. Use array indexes instead.
/Users/David/Desktop/enigma-bbs/mods/apply.js:105
                message_area_name   : getDefaultMessageArea().name,
                                                             ^

TypeError: Cannot read property 'name' of undefined
    at validationResult (/Users/David/Desktop/enigma-bbs/mods/apply.js:105:48)
    at userIdAndName (/Users/David/Desktop/enigma-bbs/mods/apply.js:62:4)
    at Statement.onResults (/Users/David/Desktop/enigma-bbs/core/user.js:399:6)

I am testing Enigma under OS X right now.

MCI codes break for art with a height greater than term height

Overview

The current MCI implementation breaks when art is used that has a height greater than term height (e.g. > ~24/25 rows). Note that breakage can also occur when the height is truncated due to the SyncTERM status bar.

Options:

  • Using the current query position technique, offsets need to be applied.
  • Use an internal tracking technique

QWK Network Support

Would be nice to see qwk network support, requires work in #31 and likely #3 as well.

Likewise, may want a semi-automated setup for DoveNet support, though this could be done via NNTP, which may actually be easier.

Windows door support

Various issues exist on Windows for doors (not limited to):

  1. pty.js currently crashes
  2. No way to share sockets

Possible solution for (2) is to have a temporary server that spawns for communication purposes (e.g. QEMU and DOSBox can likely use this)

Localization

Are there plans to localize? I am not interested in any other language pack, but others might. What I am interested in is to change the prompts and other strings to ones that are more appropriate for a professional environment.

Rumors

Rumor Support
Add support for standard/expected BBS rumors:

  • MCI code for random rumor
  • Module to expose interaction with rumors
  • API(s) for rumor access

Implement message network framework

A message network framework needs implemented. This will allow for various networks (e.g. FidoNet/FTN, QWK based, etc.) to integrate & import/export with the system. I have a design I'm working on for this. This bug is for tracking / relating existing issues.

Some general notes on what's coming:

  • The system will be "layered" allowing different import/export processors (e.g. tossers/etc.) to exist in an abstract way.
    • Conferences are being introduced. These are simply organizational groups of message areas
    • All area_name stuff in DB/code is being renamed to area_tag
    • A new configuration structure for conferences, areas, and message network mappings will be introduced (e.g. for config.hjson)
    • Initial proof of concept will be FTN processing. Next will very likely be QWK.

Current design for menu.hjson message areas & conferences is something like such:

conferences: {
    agn: {
        name: Agoranet
        desc: The Official Network of ACiD Productions

        //  simple ACS for access
        acs: THEACSSTRING

        areas: {
            agn_bbs: {
                name: BBS Discussion
                desc: General BBS discussion

                //  ACS for what users can do here
                acs: {
                    read: THEACSSTRING
                    write: THEACSSTRING
                    manage: THEACSSTRING
                }
                default: true
            }
        }
    }
}

DOS Door Support

Door support is an essential feature... I've looked into it a little bit... My plan was to make a separate door runner server... But worth mentioning dosemu for Linux and dosbox/vdos for elsewhere.

Glad to see you working in this... My efforts aren't as far along at all.

Changes not properly merged when config files are re-cached

Problem
When configuration files (menu.hjson, theme.hjson, ...) are re-cached due to an external modification, changes are not properly reflected back into the "live" view of the data. The system must be restarted for them to apply.

Expected
Changes should update in with a restart

Web UI

I know there's still some firming up of the web-ui to go... but some tool suggestions for a web user interface...

  • fTelnet - HTML5 Terminal
  • Material UI - for React
  • Redux - Flux-like control flow
  • Webpack - module bundler/build tool
  • Babel - ES6/7 feature support and JSX
  • fetch
  • polyfills service - browser polyfill as a service
    • Can be used to patch browser features directly, so that babel only needs to do what can't be polyfilled (generator/async/await, etc)

I'm happy to help with this, I'm planning on using my week off at the end of the month to work on a BBS ui anyways, and the wiring for services should be generic enough to reuse. I'm planning on tightly coupling the web ui, with a node api service, but that node api service should be able to be replaced with different backends, synchronet, enigma, x84, etc.

Confirm when discarding messages

When discarding messages (new post, reply, ...) an confirmation prompt should be provided, e.g. "Are you sure?" along with a toggle switch.

Login screen bug

I am connecting using default OS X terminal. The first time I connect, all graphics look OK. After disconnect, and connecting again, the login screen shows as below.

screen shot 2015-11-20 at 12 32 28 pm

Implement System Log

General Idea

  • Stores time stamped log/event entries
  • Entries can be rounded to day/week/month/etc. for various stats
  • How much kept is configurable
  • Name/value pairs

Examples

  • This weeks callers
  • This months top posters
  • Last callers history can use this vs it's own storage mechanism

Create a installation script

It would be nice to have a installation script that users -- especially those completely new to Node.js -- can use to quickly get up and running.

Example:

curl -o- https://github.com/NuSkooler/enigma-bbs/misc/install.sh | bash

(Note: Just an example! The above does not currently exist!)

The script should try to work on most popular *nix environments. Windows will require something else...

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.