Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ahmedsobhy01/kids-art

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
https://github.com/ahmedsobhy01/kids-art

cpp design-patterns gui object-oriented-programming painting

Last synced: 20 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# KidsArt: C++ Drawing Program (Paint for Kids) 🎨

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.

## Features 🚀

- **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.

## Screenshots 🖼️

![App Screenshot 1](https://i.imgur.com/0UWh32d.png)
![App Screenshot 2](https://i.imgur.com/LUqtXfJ.png)

## About Us 🙌

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.

## Team Members 👩‍💻

- **[Ahmed Amr Nabil](https://github.com/AhmedAmrNabil )**
- **[Ahmed Mohamed Sobhy](https://github.com/AhmedSobhy01)**
- **[Loay Ahmed Mohamed](https://github.com/LoayAhmed304 )**
- **[Omar Nabil Abdelsadek](https://github.com/OmarNabil005)**

## Learning Highlights 📚

- **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.

## Getting Started 🛠️

To run KidsArt on your machine, follow these steps:

1. Clone the repository to your local machine.
2. Compile the source code using a C++ compiler.
3. Run the executable file to launch KidsArt.

## License 📝

This project is licensed under the [MIT License](LICENSE), granting you the freedom to use and modify the code for personal or educational purposes.

## Acknowledgments 🙏

We sincerely thank our professor & our TAs for guiding us through this project and providing invaluable insights into programming techniques and design patterns.