# C# საფინალო პროექტის იდეები (გამარტივებული)
## 📋 პროექტის კრიტერიუმები
### სავალდებულო მოთხოვნები:
1. ✅ **ფაილებზე დაფუძნებული ბაზა** - JSON
2. ✅ **მინიმუმ 2 ბაზის ფაილი** (მაგ. Users.json, Products.json)
3. ✅ **სუფთა სტრუქტურა** - ორგანიზებული ფოლდერები
4. ✅ **მენიუს სისტემა** - კონსოლში ნავიგაცია
5. ✅ **მინიმუმ 10 ფუნქცია**
---
## 🛒 პროექტი #1: მაღაზიის სისტემა (ყველაზე მარტივი)
### 📊 მონაცემთა მოდელები
#### Users.json
```json
{
"Users": [
{
"Id": 1,
"Username": "gio",
"Password": "123456",
"Balance": 500.0
}
]
}
```
#### Products.json
```json
{
"Products": [
{
"Id": 1,
"Name": "ლეპტოპი",
"Price": 1200.0,
"Stock": 10
}
]
}
```
#### Cart.json
```json
{
"CartItems": [
{
"UserId": 1,
"ProductId": 1,
"Quantity": 2
}
]
}
```
### 🎯 ფუნქციები (10 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - შესვლა
3. **ViewProducts()** - პროდუქტების ნახვა
4. **SearchProduct()** - პროდუქტის ძიება
5. **AddToCart()** - კალათაში დამატება
6. **ViewCart()** - კალათის ნახვა
7. **RemoveFromCart()** - კალათიდან წაშლა
8. **Checkout()** - შეძენა
9. **AddBalance()** - ბალანსის შევსება
10. **ViewProfile()** - პროფილის ნახვა
### 📁 პროექტის სტრუქტურა
```
ShoppingApp/
│
├── Data/
│ ├── Users.json
│ ├── Products.json
│ └── Cart.json
│
├── Models/
│ ├── User.cs
│ ├── Product.cs
│ └── CartItem.cs
│
├── Services/
│ ├── UserService.cs
│ ├── ProductService.cs
│ └── CartService.cs
│
└── Program.cs
```
### 🎨 მენიუს მაგალითი
```
═══════════════════════════════
🛒 მაღაზია
═══════════════════════════════
1. შესვლა
2. რეგისტრაცია
3. გასვლა
═══════════════════════════════
აირჩიე: _
[შესვლის შემდეგ]
═══════════════════════════════
მოგესალმებით!
ბალანსი: 500₾
═══════════════════════════════
1. პროდუქტების ნახვა
2. პროდუქტის ძიება
3. კალათის ნახვა
4. ბალანსის შევსება
5. პროფილი
6. გასვლა
═══════════════════════════════
```
---
## 📚 პროექტი #2: ბიბლიოთეკის სისტემა
### 📊 მონაცემთა მოდელები
#### Users.json
```json
{
"Users": [
{
"Id": 1,
"Username": "nino",
"Role": "Reader"
}
]
}
```
#### Books.json
```json
{
"Books": [
{
"Id": 1,
"Title": "ვეფხისტყაოსანი",
"Author": "შოთა რუსთაველი",
"Available": true
}
]
}
```
#### Borrowings.json
```json
{
"Borrowings": [
{
"Id": 1,
"UserId": 1,
"BookId": 1,
"BorrowDate": "2025-09-15",
"DueDate": "2025-10-15",
"Returned": false
}
]
}
```
### 🎯 ფუნქციები (10 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - შესვლა
3. **ViewBooks()** - წიგნების ნახვა
4. **SearchBook()** - წიგნის ძიება
5. **BorrowBook()** - წიგნის აღება
6. **ReturnBook()** - წიგნის დაბრუნება
7. **ViewMyBooks()** - ჩემი წიგნები
8. **AddBook()** - წიგნის დამატება (ადმინი)
9. **RemoveBook()** - წიგნის წაშლა (ადმინი)
10. **ViewOverdue()** - დაგვიანებული წიგნები
### 📁 პროექტის სტრუქტურა
```
LibraryApp/
│
├── Data/
│ ├── Users.json
│ ├── Books.json
│ └── Borrowings.json
│
├── Models/
│ ├── User.cs
│ ├── Book.cs
│ └── Borrowing.cs
│
├── Services/
│ ├── UserService.cs
│ ├── BookService.cs
│ └── BorrowingService.cs
│
└── Program.cs
```
---
## 🏨 პროექტი #3: სასტუმროს სისტემა
### 📊 მონაცემთა მოდელები
#### Users.json
```json
{
"Users": [
{
"Id": 1,
"Username": "mari",
"Phone": "555123456"
}
]
}
```
#### Rooms.json
```json
{
"Rooms": [
{
"Id": 101,
"Type": "Single",
"Price": 80.0,
"Available": true
}
]
}
```
#### Bookings.json
```json
{
"Bookings": [
{
"Id": 1,
"UserId": 1,
"RoomId": 101,
"CheckIn": "2025-10-01",
"CheckOut": "2025-10-05",
"TotalPrice": 320.0
}
]
}
```
### 🎯 ფუნქციები (10 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - შესვლა
3. **ViewRooms()** - ოთახების ნახვა
4. **SearchRooms()** - ოთახის ძიება
5. **BookRoom()** - ოთახის დაჯავშნა
6. **ViewMyBookings()** - ჩემი დაჯავშნები
7. **CancelBooking()** - დაჯავშნის გაუქმება
8. **AddRoom()** - ოთახის დამატება (მენეჯერი)
9. **UpdatePrice()** - ფასის შეცვლა (მენეჯერი)
10. **ViewAllBookings()** - ყველა დაჯავშნა (მენეჯერი)
---
## 🎬 პროექტი #4: კინოს ბილეთების სისტემა
### 📊 მონაცემთა მოდელები
#### Movies.json
```json
{
"Movies": [
{
"Id": 1,
"Title": "Inception",
"Genre": "Sci-Fi",
"Duration": 148
}
]
}
```
#### Showtimes.json
```json
{
"Showtimes": [
{
"Id": 1,
"MovieId": 1,
"DateTime": "2025-09-30 18:00",
"Hall": "Hall 1",
"AvailableSeats": 85,
"Price": 15.0
}
]
}
```
#### Bookings.json
```json
{
"Bookings": [
{
"Id": 1,
"UserId": 1,
"ShowtimeId": 1,
"Seats": ["A1", "A2"],
"TotalPrice": 30.0
}
]
}
```
### 🎯 ფუნქციები (10 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - შესვლა
3. **ViewMovies()** - ფილმების ნახვა
4. **SearchMovie()** - ფილმის ძიება
5. **ViewShowtimes()** - სეანსების ნახვა
6. **SelectSeats()** - ადგილების არჩევა
7. **BookTickets()** - ბილეთის შეძენა
8. **ViewMyBookings()** - ჩემი ბილეთები
9. **CancelBooking()** - ბილეთის გაუქმება
10. **AddMovie()** - ფილმის დამატება (ადმინი)
---
## 🍕 პროექტი #5: რესტორნის სისტემა
### 📊 მონაცემთა მოდელები
#### Menu.json
```json
{
"MenuItems": [
{
"Id": 1,
"Name": "პიცა მარგარიტა",
"Category": "მთავარი კერძი",
"Price": 25.0,
"Available": true
}
]
}
```
#### Orders.json
```json
{
"Orders": [
{
"Id": 1,
"UserId": 1,
"TableNumber": 5,
"Items": [
{
"ItemId": 1,
"Quantity": 2
}
],
"TotalPrice": 50.0,
"Status": "მზადდება"
}
]
}
```
#### Tables.json
```json
{
"Tables": [
{
"Id": 1,
"Number": 5,
"Capacity": 4,
"Occupied": true
}
]
}
```
### 🎯 ფუნქციები (10 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - შესვლა
3. **ViewMenu()** - მენიუს ნახვა
4. **SearchItem()** - კერძის ძიება
5. **AddToOrder()** - კერძის დამატება
6. **PlaceOrder()** - შეკვეთის გაფორმება
7. **ViewMyOrders()** - ჩემი შეკვეთები
8. **ReserveTable()** - მაგიდის დაჯავშნა
9. **AddMenuItem()** - კერძის დამატება (მენეჯერი)
10. **UpdateStatus()** - სტატუსის შეცვლა (მენეჯერი)
---
## 💡 დამატებითი რჩევები
### ფაილებთან მუშაობა
```csharp
// JSON-ის წაკითხვა
string json = File.ReadAllText("Data/Users.json");
var users = JsonSerializer.Deserialize<List<User>>(json);
// JSON-ში ჩაწერა
string json = JsonSerializer.Serialize(users);
File.WriteAllText("Data/Users.json", json);
```
### მარტივი ვალიდაცია
```csharp
if (string.IsNullOrEmpty(username))
{
Console.WriteLine("სახელი ცარიელია!");
return;
}
if (price < 0)
{
Console.WriteLine("ფასი არასწორია!");
return;
}
```
### მენიუს მაგალითი კოდში
```csharp
while (true)
{
Console.Clear();
Console.WriteLine("1. პროდუქტების ნახვა");
Console.WriteLine("2. კალათის ნახვა");
Console.WriteLine("3. გასვლა");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
ViewProducts();
break;
case 2:
ViewCart();
break;
case 3:
return;
}
}
```