Skip to content
/ webapp Public

An intuitive web app to help you explore and construct formal languages and automata with real-time analysis and error checking.

License

Notifications You must be signed in to change notification settings

flapjs/webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flap.js


flapjs
Explore what it means to be computable.

Also known as Formal Languages and Automata Package dot JavaScript.

Build Status

By UCSD students, for all of you.


Purpose

To make a program that is more accessible and intuitive to use, so we can all become a JFLAP-free homework group for Professor Minnes' class (CSE 105 - Theory of Computation).

Table of Contents


TODO: This is UNDER CONSTRUCTION. Please stand by.


Features

1.0.0 (Future)

  • Set construction scripting language
  • Turing Machine
  • Formal Definition summary
    • Tape Symbols
    • q_acc
    • q_rej
  • Tape testing
    • TM

0.4.1

  • Theme presets
  • Context-Free Grammars
  • StepTracer design
  • Cross-window operations
  • Automatic build pipeline with TravisCI

0.3.4

  • Pushdown Automata
  • Regular Expressions
  • Hotkey system
  • New UI design

0.2.0

  • Module system
  • Graph optimizations
  • Bug reporting
  • Generic nodal graphing mode

0.1.0

  • Deterministic Finite Automata
  • Nondeterministic Finite Automata
  • Nodal graphing
    • Basic layout
    • Node editing
    • Edge editing
    • Label editing
    • Formal Definition summary
      • States
      • Symbols
      • Transitions
      • Start State
      • Final States
    • String testing
      • DFA
      • NFA
    • Export to image
    • Circular auto-layout
    • Step-By-Step mode
  • User-defined themes
  • Autosave system
  • Custom language
  • Offline capabilities

NOTE: Check out our changelog for more information!


Getting Started

Check out our docs folder for more detailed and comprehensive tutorials, information, examples, etc.

Here's a TL;DR to get you started quickly:

  1. Install your favorite text editor (anything that can handle JavaScript, HTML, and CSS would be nice, but not necessary).
  2. We use Node.js and Git. Setup them up accordingly.
  3. For sanity checking, we use ESlint and Stylelint. If you can add them to your editor that would be nice to have, but, once again, not necessary. These checks will be performed during testing.
  4. For testing, we use jest. No installation is necessary, but do be familiar on how to use it.
  5. Create a project root directory flapjs. This should contain all related repos (such as flapjs/webapp or flapjs/welcome).
  6. Clone your repo into flapjs.
  7. Now all setup is complete, we must run npm install for the cloned repo to prepare all project dependencies.
  8. The entry point is src/main.js. From there, you can now get started on your adventure! Happy coding!

Conclusion

If you have any more questions, please contact any Flap.js dev team member.

Or, you can contact me: ank060@ucsd.edu (Please begin the subject with 'Flap.js - ')

Thank you for reading me!

About

An intuitive web app to help you explore and construct formal languages and automata with real-time analysis and error checking.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published