Giter Club home page Giter Club logo

fflow's Introduction


Logo

fflow

Supercharge your React development process
Explore the docs »

View Demo · Report Bug · Request Feature

GitHub Repo stars GitHub license GitHub issues Contributions Welcome

Give a ⭐️ if our project helped or interests you!


Table of Contents
  1. About fflow
  2. Getting Started
  3. Run Exported Project
  4. Contributors
  5. Roadmap
  6. Contributing Guide
  7. License

About fflow

React is the most popular library used by frontend developers today. Yet, getting a React application started requires a too much boilerplate code and unnecessary time.

fflow is a free, open-source developer tool to create React applications rapidly and with minimal effort using the simple drag and drop UI. It combines the most compelling features of Create React App, React ES6 snippets, and a beautiful user experience. We are really excited to launch this alpha version and hope you will download, play around with it, and provide us with feedback.

Here is a medium article describing the philosophy behind fflow and you can download it here.

Visit our website here 👉 https://fflow.dev

Features

  • Drag, Drop, Reorder and Delete HTML Tags
  • Create Custom React Components
  • Light and Dark Theme based on OS Preferences and Manual Toggle
  • Delete Project and Clear Canvas to restart build process
  • Live preview in Code editor
  • Interactable CSS Code Editor
  • Easily switch between files with file tree or on the canvas
  • Easy redirect to App.jsx by clicking on the fflow icon
  • Export app with preconfigured and versatile webpack
  • In-built terminal initializes an instance of the exported app without leaving fflow
  • Accessibility features including canvas item highlighting when the HTML tag or Component is picked up

Built with

(back to top)

Loading Screen

Light and Dark Mode

Create Custom Components and Nest HTML elements

Edit CSS directly in the App (Currently only on Mac version)

💫💫 Coming soon to Windows 💫💫

Export Working Project

Clear canvas to start from scratch

Getting Started

The following instructions are split into two sections for:

Production Mode

Please download the latest release of fflow for MacOS or Windows.

💫 Linux version coming soon. 💫

  • Mac users: After opening the dmg and dragging fflow into your Applications folder, CTL + Click the icon and 'Open' from the context menu to open the app. This extra step is necessary since we don't have an Apple developer license yet.

  • Windows users: Install the application by running fflow setup 1.0.0.exe.

Clone this repo

  1. Clone this repo git clone https://github.com/oslabs-beta/fflow
  2. Install the dependencies npm install
  3. On a Mac, run ./node_modules/.bin/electron-rebuild in your terminal or .\node_modules\.bin\electron-rebuild.cmd on Windows
  4. Run script for development mode npm run start
  5. Build the app (automatic) npm run package
  6. Test the app (after npm run build || yarn run build) npm run prod

Current issues

Note there is currently an issue where the Monaco Code Editor keeps showing 'loading...' in development mode. We are working to solve this. In the meantime, when you drag HTML tags onto canvas you can still see the code editor's contents in the Developer Tools.

Running tests

Electron, React and Redux tests can be run using npm run test

(back to top)

Run Exported Project

Below is the generated directory structure of the React and Webpack application that is created when you export your application.

├── dist                    # Compiled files
│    └── index.html
├── src                     # Source files
│    └── App.js
│    └── index.js
│    └── styles.css
├── webpack.config.js       # Webpack configuration
├── .babelrc                # Babel configuration
├── .gitignore              # Git ignore file
├── package.json            # Dependencies file
└── README.md               # Boilerplate README file

  1. Using the inbuilt terminal, cd into the Exported Project in your Downloads folder
  2. In the root of the Exported Project folder, install dependencies npm install
  3. Start an instance npm run start
  4. If Localhost:8080 does not open automatically in your default browser, navigate to the specified port to see your running app with Hot Module Reloading and a pre-configured webpack

Add Sass

Adding Sass to your exported project requires updating webpack configs and adding necessary loaders.

  1. Install loaders for sass, sass-loader and node-sass
  2. Add another object to the rules in webpack.config with the following:
 {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader'
        ]
      }
  1. Rename styles.css to styles.scss

Add Tailwind

Adding Tailwind to your exported project requires updating webpack configs, adding necessary loaders and tailwind config.

  1. Install tailwind as a dependency
npm install tailwindcss
  1. Install postcss-loader and autoprefixer as development dependencies
npm install -D postcss-loader autoprefixer
  1. Copy the following copy into src/styles.css
@tailwind base;

@tailwind components;

@tailwind utilities;
  1. Create a postcss.config.js file and copy the following code in
module.exports = {
  plugins: [require('tailwindcss'), require('autoprefixer')],
};
  1. Add 'postcss-loader' to the css rules in webpack.config

Change App Title

This boilerplate names your project Exported Project. You can change the app title by inserting the app title within the <title> </title> tags in index.html.

(back to top)

Contributors

Project Links: Github | Linkedin | Media

(back to top)

Roadmap

  • Editable JS Code Preview
  • Nesting HTML elements
  • GitHub OAuth Integration and online project save
  • Keyboard shortcuts for Mac and Windows
  • Export in TypeScript
  • Save Multiple Projects
  • Create Custom HTML Elements
  • Open and compose multiple projects in different windows simultaneously
  • BrowserView to preview project
  • Live Editing with other collaborators
  • AWS hosted version

(back to top)

Contributing Guide

Contributions are what make the open source community an amazing place to learn, inspire, and create. Any contributions are greatly appreciated.

If you have a suggestion of how to make fflow better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork this repo
  2. Create your Feature Branch (git checkout -b yourgithubhandle/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Create and push to your remote branch (git push origin yourgithubhandle/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Licensed under MIT License © fflow.

fflow's People

Contributors

bryannadejesus avatar crumblepie avatar jakepino avatar ronakh130 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

fflow's Issues

XTerm auto fit add-on not auto-adjusting to parent container

Context (current result)

Currently the size of the xterm terminal is hardcoded in TerminalView.jsx. This means the terminal is not resizing to the parent container (the active tab content container).

Expected result

XTerm resizes when the user resizes the main window.

Process to reproduce

  1. Comment out the maxWidth and maxHeight properties for the main BrowserWindow on around lines 59 and 60 of main.jsx.
  2. npm run start and switch to the Terminal tab
  3. Try resizing the main window and the terminal will stay constant size

Screenshots

Screen Shot 2022-02-18 at 10 48 19 am

Possible Fix

Some suggestions of possible places to start:

  • Terminal.css file
  • Issues in Xterm's issues list relating to xterm-addon-fit

Local Save using localforage

Context (current result)

Currently the canvas items and code in the Monaco Editor does not save when user closes and quits fflow. This feature was previously implemented using localForage and broke during a merge therefore the partial code is still present in App.jsx and localStorage.js.

Expected result

Canvas items and code persists when user closes and reopens the application.

Process to reproduce

  1. Drag HTML elements onto the canvas
  2. Close and quit the application
  3. Restart the application and the canvas is empty

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.