Welcome to ChildJSπ§, an open-source project aimed at introducing children to the world of programming through a simplified and playful JavaScript-like language called babyLanguage. ChildJS provides a fun and engaging platform for children to learn programming concepts in a friendly and intuitive way.
ChildJS is designed to be a beginner-friendly environment where children can explore programming concepts using simple syntax and familiar emojis. The project focuses on creating a learning playground that encourages creativity, experimentation, and problem-solving skills.
Features of ChildJS Playground:
-
π» Interactive Environment:
- Create an interactive playground environment for children to write and execute babyLanguage code in real-time.
- Provide a user-friendly interface with syntax highlighting and error handling to enhance the coding experience.
-
π¨ Visual Editor:
- Incorporate a canvas-based whiteboard interface, allowing children to visualize their code execution dynamically.
- Support hand-drawn-like style elements to make coding feel more creative and engaging.
-
π Dark Mode:
- Implement a dark mode option to cater to different preferences and ensure accessibility in various lighting conditions.
-
ποΈ Customization:
- Allow customization of the playground interface, including themes, fonts, and editor settings, to suit individual preferences.
-
π· Image Support:
- Integrate image support to enable children to upload and manipulate images within their projects, fostering creativity.
-
π Shape Libraries:
- Provide a library of pre-defined shapes and symbols for easy drag-and-drop usage, enhancing visual representation in projects.
-
π Localization (i18n):
- Support multiple languages to make the playground accessible to children from diverse linguistic backgrounds.
-
πΌοΈ Export Options:
- Enable export functionality to save projects as PNG, SVG, or clipboard-compatible formats, allowing children to share their creations easily.
-
πΎ Open Format:
- Save projects in an open format
.childjs
to ensure compatibility across platforms and facilitate collaboration.
- Save projects in an open format
-
βοΈ Wide Range of Tools:
- Offer a variety of drawing tools such as rectangle, circle, arrow, line, free-draw, and eraser for creating diverse projects.
-
β‘οΈ Arrow-Binding & Labeled Arrows:
- Implement arrow-binding and labeled arrows functionality to enhance visual communication and clarity in projects.
-
π Undo / Redo:
- Provide undo and redo capabilities to allow children to experiment freely without fear of making mistakes.
-
π Zoom and Panning:
- Support zoom and panning features to enable children to navigate and explore their projects easily, even on larger canvases.
To start using ChildJS, follow these steps:
- π Visit the ChildJS repository on GitHub: Link to Repository
- π₯ Clone or download the repository to your local machine.
- π Open the project directory and explore the documentation to understand how to use the babyLanguage syntax and interact with the playground.
- π Launch the interactive playground and start writing and executing babyLanguage code.
ChildJS uses a simple and intuitive syntax inspired by JavaScript, with emojis representing programming concepts.
- πΌ Variables: Declare variables using emojis e.g.,
πΌ varName = value;
- π» Output: Display messages using emojis e.g.,
π» display "Hello, World!";
- π€ Input: Take input and assign it to variables using emojis e.g.,
π€ varName = input;
- βββοΈβ Arithmetic Operations: Perform basic arithmetic operations using emojis e.g.,
β varName = num1 + num2;
- ππ Conditional Statements: Use emojis for if-else statements e.g.,
π if condition then
- π Loops: Create loops using emojis e.g.,
π loop numTimes times
// Variables
πΌ varName = value; // Declare a variable with value
// Output
π» display "message"; // Display a message
// Input
π€ varName = input; // Take input and assign to variable
// Arithmetic Operations
β varName = num1 + num2; // Addition
β varName = num1 - num2; // Subtraction
βοΈ varName = num1 * num2; // Multiplication
β varName = num1 / num2; // Division
// Conditional Statements
π if condition then
// code block
π
π else
// code block
π
// Loops
π loop numTimes times
// code block
π
// Comments
π // This is a comment
- Any contributions you make are greatly appreciated.
- Check out our contribution guidelines for more information.
Thanks a lot for spending your time helping ChildJSπ§ grow. Thanks a lot! Keep rocking π