https://github.com/ismail-mohammed-atef/autodrawer
WPF aaplication used to dynamically draw different shapes and save your shapes in database to be able to use them again
https://github.com/ismail-mohammed-atef/autodrawer
authentication csharp design-patterns dotnet mvvm wpf
Last synced: about 2 months ago
JSON representation
WPF aaplication used to dynamically draw different shapes and save your shapes in database to be able to use them again
- Host: GitHub
- URL: https://github.com/ismail-mohammed-atef/autodrawer
- Owner: Ismail-Mohammed-Atef
- Created: 2025-02-21T23:09:37.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-24T20:07:26.000Z (over 1 year ago)
- Last Synced: 2025-03-24T21:22:51.311Z (over 1 year ago)
- Topics: authentication, csharp, design-patterns, dotnet, mvvm, wpf
- Language: C#
- Homepage:
- Size: 36.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WPF Auto Drawer
## Overview
WPF Auto Drawer is a desktop application for creating and managing different shapes with advanced drawing capabilities. Built using MVVM architecture, design patterns, and Entity Framework, the application allows users to save and load their drawings, maintaining shapes and layouts across sessions. It features a tabbed system similar to AutoCAD and integrates authentication using Identity.
## Features
- **Shape Drawing**: Supports drawing and editing various shapes.
- **MVVM Architecture**: Ensures separation of concerns and maintainability.
- **Design Patterns**: Utilizes Factory Pattern for shape creation, Repository Pattern for data handling, and Command Pattern for undo/redo functionality.
- **Entity Framework**: Saves drawings per user and loads them with exact configurations.
- **Tabbed System**: Multi-document interface similar to AutoCAD.
- **Authentication & Authorization**: Secure login and user management with Identity.
- **Undo/Redo Functionality**: Provides enhanced editing capabilities.
- **Grid & Snap Support**: Improves precision in shape placement.
- **Theme Customization**: Dark/light mode and UI adjustments.
## Installation
1. Clone the repository.
2. Open the project in Visual Studio.
3. Restore NuGet packages.
4. Configure the database connection in `appsettings.json`:
```json
{
"ConnectionStrings": {
"DefaultConnection": "Server=your-server;Database=your-db;User Id=your-user;Password=your-password;"
}
}
```
5. Apply migrations and update the database:
```sh
dotnet ef database update
```
6. Build and run the application.
## Usage
1. Register/Login using Identity authentication.
2. Open a new tab to start a drawing session.
3. Draw shapes and save your work.
4. Load previously saved files with preserved layouts.
5. Utilize grid/snapping for precision.
6. Switch between tabs to work on multiple drawings simultaneously.
## Requirements
- **Windows OS**: 10 or later
- **.NET Version**: .NET 8 or later
- **Database**: SQL Server or SQLite
- **Authentication**: Identity with JWT support
## License
This project is licensed under the MIT License.
## Contact
For support or inquiries, reach out via email at ismail.mohammed.atef@gmail.com.