Welcome to KidsArt, an exciting C++ drawing and painting program created to foster creativity and learning among children. Developed as a part of the Programming Techniques course during our first year of Computer Engineering at Cairo University, KidsArt is more than just a drawing tool; it's an interactive and educational experience for young minds.
-
Drawing Shapes: Kids can unleash their imagination by drawing various shapes, including circles, hexagons, rectangles, squares, and triangles.
-
Color Customization: The application allows users to customize the outline color and background color, providing endless possibilities for artistic expression.
-
Shape Manipulation: Children can easily move and resize shapes by dragging, encouraging experimentation and spatial awareness.
-
Undo & Redo: KidsArt incorporates an intuitive undo and redo functionality, allowing young artists to correct mistakes and experiment fearlessly.
-
Recording Functionality: The program features a recording option, enabling children to capture their entire drawing process.
-
Save & Load: Drawings can be saved to a file for future reference, fostering a sense of accomplishment, and loaded whenever children want to continue their creative work.
-
Play Mode: In Play Mode, KidsArt becomes an educational tool, engaging children with questions about their drawings. This mode adds an element of fun while enhancing their cognitive skills.
This project was a collaborative effort by a team of four enthusiastic computer engineering students from Cairo University. As a pivotal assignment in our "Programming Techniques" course, KidsArt gave us practical insights into applying Object-Oriented Programming (OOP) principles in a real-world project.
-
Object-Oriented Programming (OOP): KidsArt is a testament to our understanding and application of OOP concepts, demonstrating how they can be effectively employed to model shapes, actions, and the overall structure of an application.
-
Static & Dynamic Binding: Through developing the drawing tool, we gained hands-on experience with both static and dynamic binding in C++.
-
Action Design Pattern: The implementation of the Action design pattern in the application manager showcases our ability to handle various user interactions efficiently.
To run KidsArt on your machine, follow these steps:
- Clone the repository to your local machine.
- Compile the source code using a C++ compiler.
- Run the executable file to launch KidsArt.
This project is licensed under the MIT License, granting you the freedom to use and modify the code for personal or educational purposes.
We sincerely thank our professor & our TAs for guiding us through this project and providing invaluable insights into programming techniques and design patterns.