Coder Social home page Coder Social logo

louisdup / edublocks Goto Github PK

View Code? Open in Web Editor NEW

This project forked from makeanedublocksblock/edublocks

0.0 0.0 0.0 5.73 MB

Block-based programming tool that helps introduce text-based programming languages

Home Page: https://edublocks.org

License: GNU Affero General Public License v3.0

JavaScript 2.44% Ruby 0.06% Java 0.09% TypeScript 87.73% CSS 0.03% Swift 0.20% HTML 0.39% Vue 9.06%

edublocks's Introduction

EduBlocks V5

EduBlocks is a visual block based programming tool that helps teachers to introduce text based programming languages, like Python & HTML, to children at an earlier age via a drag and drop programming experience.

Developing EduBlocks

EduBlocks is written in Typescript using Vue 3 bootstrapped with Vite.

Tailwind CSS is used for styling with a custom component library.

Firebase is used for Authentication, as a database (Firestore) and for cloud storage. For security reasons, this repository does not include keys for firebase, so you'll need to setup your own firebase project and create the following .env file in the root of the repository.

VITE_API_KEY=FIREBASEAPIKEY
VITE_AUTH_DOMAIN=
VITE_DATABASE_URL=
VITE_PROJECT_ID=
VITE_STORAGE_BUCKET=
VITE_MESSAGING_SENDER_ID=
VITE_APP_ID=
VITE_MEASUREMENT_ID=
VITE_INSTRUMENTATION_KEY=
TAILWIND_MODE=watch

We reccommend Visual Studio code with the ESLint, Prettier, TailwindCSS & Volar plugins when developing EduBlocks.

Building & running EduBlocks

Install

  1. Make sure you have the latest versions of NodeJS and yarn installed.
  2. Clone the EduBlocks repository.
  3. Install node modules with yarn install.

Run

  • To run the development server: yarn dev.
  • To run Storybook (for testing & documenting components): yarn storybook.

Build

  • To build a static version of EduBlocks: yarn build.

Best Practices

View Structure

All views should have the following folder structure:

home/
    home.vue 
    home-model.ts
    routes.ts
    templates/
        home-mobile.vue
        home-desktop.vue
  • home.vue: The "root" .vue file for each view. It stays the same for every view. It should only contain a mobile and a desktop template for the view, imported as components. onMounted can be added to the <script setup> block for running logic when the view is mounted.

  • home-model.ts: This is where all the logic/typescript code for the view goes. It's best practice to have all logic/typescript code inside of this model file rather than in the .vue files themselves. This is for keeping the codebase clean, easier to understand and to provide a better developer experience with linting tools.

  • routes.ts: This exports all of the routes for the view to the router.

  • templates/home-mobile: This is where all the markup for the mobile version of the view goes. Views should be made up of components only and no native HTML elements. Views also should not contain tailwind classes. All styling should be handled by components.

  • templates/home-desktop: Same as above but the desktop version of the view.

Credits

List of notable scientists and hackers for the random filename generator: Moby.

Loading animation component: Scratch GUI.

Connect cable micro:bit gif: Micro:bit Foundation.

Google Blockly.

edublocks's People

Contributors

joshualowe1002 avatar

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.