# C# საფინალო პროექტის იდეები
## 📋 პროექტის კრიტერიუმები
### სავალდებულო მოთხოვნები:
1. ✅ **ფაილებზე დაფუძნებული ბაზის სისტემა** - XML ან JSON
2. ✅ **მინიმუმ 2 ბაზის მოდელი** (მაგ. Users.json, Products.json)
3. ✅ **სუფთა სტრუქტურა** - ფაილები დალაგებულად
4. ✅ **მენიუს სისტემა** - კონსოლში ნავიგაცია
5. ✅ **მინიმუმ 10 ფუნქცია** (მეთოდი)
### დამატებითი (არა სავალდებულო):
6. ⭐ **ავტორიზაციის სისტემა** - მომხმარებლის სესია
---
## 🛒 პროექტი #1: E-Commerce Shopping Cart System (რეკომენდებული)
### 📊 მონაცემთა მოდელები
#### 1. Users.json
```json
{
"Users": [
{
"UserId": 1,
"Username": "john_doe",
"Password": "hashed_password",
"Email": "john@example.com",
"Role": "Customer",
"Balance": 500.00,
"CreatedDate": "2025-01-15",
"IsActive": true
}
]
}
```
#### 2. Products.json
```json
{
"Products": [
{
"ProductId": 1,
"Name": "Laptop HP",
"Description": "15 inch, 16GB RAM",
"Price": 1200.00,
"Stock": 25,
"Category": "Electronics",
"ImageUrl": "laptop.jpg",
"CreatedDate": "2025-01-10"
}
]
}
```
#### 3. Orders.json
```json
{
"Orders": [
{
"OrderId": 1,
"UserId": 1,
"OrderDate": "2025-09-29",
"TotalPrice": 1450.00,
"Status": "Pending",
"Items": [
{
"ProductId": 1,
"Quantity": 1,
"Price": 1200.00
}
]
}
]
}
```
#### 4. Cart.json
```json
{
"CartItems": [
{
"CartId": 1,
"UserId": 1,
"ProductId": 1,
"Quantity": 2,
"AddedDate": "2025-09-29"
}
]
}
```
### 🎯 ფუნქციები (15 ფუნქცია)
#### მომხმარებლის ფუნქციები:
1. **Register()** - ახალი მომხმარებლის რეგისტრაცია
2. **Login()** - სისტემაში შესვლა
3. **Logout()** - სისტემიდან გასვლა
4. **ViewProfile()** - პროფილის ნახვა
5. **AddBalance()** - ბალანსის შევსება
#### პროდუქტების ფუნქციები:
6. **ViewAllProducts()** - ყველა პროდუქტის ნახვა
7. **SearchProducts()** - პროდუქტის ძიება (სახელით/კატეგორიით)
8. **FilterByCategory()** - კატეგორიით ფილტრაცია
9. **ViewProductDetails()** - პროდუქტის დეტალები
#### კალათის ფუნქციები:
10. **AddToCart()** - კალათაში დამატება
11. **RemoveFromCart()** - კალათიდან წაშლა
12. **ViewCart()** - კალათის ნახვა
13. **UpdateCartQuantity()** - რაოდენობის შეცვლა
#### შეკვეთის ფუნქციები:
14. **Checkout()** - შეკვეთის გაფორმება
15. **ViewOrderHistory()** - შეკვეთების ისტორია
16. **CancelOrder()** - შეკვეთის გაუქმება
#### ადმინის ფუნქციები (დამატებით):
17. **AddProduct()** - პროდუქტის დამატება
18. **UpdateProduct()** - პროდუქტის რედაქტირება
19. **DeleteProduct()** - პროდუქტის წაშლა
20. **ViewAllOrders()** - ყველა შეკვეთის ნახვა
### 📁 პროექტის სტრუქტურა
```
ShoppingCartSystem/
│
├── Data/
│ ├── Users.json
│ ├── Products.json
│ ├── Orders.json
│ └── Cart.json
│
├── Models/
│ ├── User.cs
│ ├── Product.cs
│ ├── Order.cs
│ ├── OrderItem.cs
│ └── CartItem.cs
│
├── Services/
│ ├── UserService.cs
│ ├── ProductService.cs
│ ├── OrderService.cs
│ ├── CartService.cs
│ └── AuthService.cs
│
├── Utils/
│ ├── JsonHelper.cs
│ ├── ValidationHelper.cs
│ └── ConsoleHelper.cs
│
├── Menus/
│ ├── MainMenu.cs
│ ├── UserMenu.cs
│ ├── AdminMenu.cs
│ └── ProductMenu.cs
│
└── Program.cs
```
### 🎨 მენიუს სტრუქტურა
```
═══════════════════════════════════════
🛒 SHOPPING CART SYSTEM
═══════════════════════════════════════
1. 👤 Login
2. 📝 Register
3. 🚪 Exit
═══════════════════════════════════════
Choose option: _
[After Login - Customer Menu]
═══════════════════════════════════════
Welcome, John! 💰 Balance: 500.00₾
═══════════════════════════════════════
1. 🛍️ View Products
2. 🔍 Search Products
3. 🛒 View Cart
4. 📦 My Orders
5. 💰 Add Balance
6. 👤 My Profile
7. 🚪 Logout
═══════════════════════════════════════
Choose option: _
[Admin Menu]
═══════════════════════════════════════
👨💼 ADMIN PANEL
═══════════════════════════════════════
1. ➕ Add Product
2. ✏️ Edit Product
3. ❌ Delete Product
4. 📊 View All Orders
5. 👥 Manage Users
6. 📈 Statistics
7. 🚪 Logout
═══════════════════════════════════════
```
---
## 📚 პროექტი #2: Library Management System
### 📊 მონაცემთა მოდელები
#### 1. Users.json
```json
{
"Users": [
{
"UserId": 1,
"Username": "librarian01",
"Role": "Librarian",
"Email": "lib@library.ge",
"PhoneNumber": "555123456"
}
]
}
```
#### 2. Books.json
```json
{
"Books": [
{
"BookId": 1,
"ISBN": "978-0-123456-78-9",
"Title": "ვეფხისტყაოსანი",
"Author": "შოთა რუსთაველი",
"Category": "ქართული ლიტერატურა",
"PublicationYear": 1200,
"TotalCopies": 5,
"AvailableCopies": 3,
"ShelfLocation": "A-12"
}
]
}
```
#### 3. Borrowings.json
```json
{
"Borrowings": [
{
"BorrowingId": 1,
"UserId": 2,
"BookId": 1,
"BorrowDate": "2025-09-15",
"DueDate": "2025-10-15",
"ReturnDate": null,
"Status": "Active",
"Fine": 0
}
]
}
```
### 🎯 ფუნქციები (12 ფუნქცია)
1. **Register()** - მკითხველის რეგისტრაცია
2. **Login()** - ავტორიზაცია
3. **SearchBooks()** - წიგნების ძიება (სახელი/ავტორი/ISBN)
4. **ViewAvailableBooks()** - ხელმისაწვდომი წიგნები
5. **BorrowBook()** - წიგნის აღება
6. **ReturnBook()** - წიგნის დაბრუნება
7. **ViewMyBorrowings()** - ჩემი წიგნები
8. **AddBook()** - წიგნის დამატება (Librarian)
9. **RemoveBook()** - წიგნის წაშლა
10. **CheckOverdueBooks()** - დაგვიანებული წიგნები
11. **CalculateFine()** - ჯარიმის გამოთვლა
12. **GenerateReport()** - რეპორტი
---
## 🏨 პროექტი #3: Hotel Booking System
### 📊 მონაცემთა მოდელები
#### 1. Rooms.json
```json
{
"Rooms": [
{
"RoomId": 101,
"RoomNumber": "101",
"Type": "Single",
"PricePerNight": 80.00,
"Capacity": 1,
"Floor": 1,
"Amenities": ["WiFi", "TV", "AC"],
"IsAvailable": true
}
]
}
```
#### 2. Reservations.json
```json
{
"Reservations": [
{
"ReservationId": 1,
"UserId": 1,
"RoomId": 101,
"CheckInDate": "2025-10-01",
"CheckOutDate": "2025-10-05",
"TotalPrice": 320.00,
"Status": "Confirmed",
"BookingDate": "2025-09-29"
}
]
}
```
### 🎯 ფუნქციები (11 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - ავტორიზაცია
3. **SearchRooms()** - ოთახების ძიება (თარიღით/ტიპით)
4. **ViewAvailableRooms()** - ხელმისაწვდომი ოთახები
5. **BookRoom()** - ოთახის დაჯავშნა
6. **ViewMyReservations()** - ჩემი დაჯავშნები
7. **CancelReservation()** - დაჯავშნის გაუქმება
8. **MakePayment()** - გადახდა
9. **AddRoom()** - ოთახის დამატება (Manager)
10. **UpdateRoomPrice()** - ფასის შეცვლა
11. **ViewAllReservations()** - ყველა დაჯავშნა
---
## 🎬 პროექტი #4: Movie Ticket Booking System
### 📊 მონაცემთა მოდელები
#### 1. Movies.json
```json
{
"Movies": [
{
"MovieId": 1,
"Title": "Inception",
"Genre": "Sci-Fi",
"Duration": 148,
"Rating": "PG-13",
"Director": "Christopher Nolan",
"ReleaseYear": 2010,
"Poster": "inception.jpg"
}
]
}
```
#### 2. Showtimes.json
```json
{
"Showtimes": [
{
"ShowtimeId": 1,
"MovieId": 1,
"DateTime": "2025-09-30T18:00:00",
"Hall": "Hall 1",
"TotalSeats": 100,
"AvailableSeats": 85,
"Price": 15.00
}
]
}
```
#### 3. Bookings.json
```json
{
"Bookings": [
{
"BookingId": 1,
"UserId": 1,
"ShowtimeId": 1,
"SeatNumbers": ["A1", "A2"],
"TotalPrice": 30.00,
"BookingDate": "2025-09-29",
"Status": "Confirmed"
}
]
}
```
### 🎯 ფუნქციები (12 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - ავტორიზაცია
3. **ViewMovies()** - ფილმების ნახვა
4. **SearchMovies()** - ფილმის ძიება
5. **ViewShowtimes()** - სეანსების ნახვა
6. **SelectSeats()** - ადგილების არჩევა
7. **BookTickets()** - ბილეთის შეძენა
8. **ViewMyBookings()** - ჩემი ბილეთები
9. **CancelBooking()** - ბილეთის გაუქმება
10. **AddMovie()** - ფილმის დამატება (Admin)
11. **AddShowtime()** - სეანსის დამატება
12. **ViewStatistics()** - სტატისტიკა
---
## 🍕 პროექტი #5: Restaurant Order Management
### 📊 მონაცემთა მოდელები
#### 1. Menu.json
```json
{
"MenuItems": [
{
"ItemId": 1,
"Name": "Margherita Pizza",
"Category": "Main Course",
"Price": 25.00,
"Ingredients": ["Dough", "Tomato", "Cheese", "Basil"],
"IsAvailable": true,
"PreparationTime": 20
}
]
}
```
#### 2. Orders.json
```json
{
"Orders": [
{
"OrderId": 1,
"UserId": 1,
"TableNumber": 5,
"Items": [
{
"ItemId": 1,
"Quantity": 2,
"Price": 25.00
}
],
"TotalPrice": 50.00,
"OrderDate": "2025-09-29T19:30:00",
"Status": "Preparing"
}
]
}
```
#### 3. Tables.json
```json
{
"Tables": [
{
"TableId": 1,
"TableNumber": 5,
"Capacity": 4,
"IsOccupied": true,
"Location": "Indoor"
}
]
}
```
### 🎯 ფუნქციები (11 ფუნქცია)
1. **Register()** - რეგისტრაცია
2. **Login()** - ავტორიზაცია
3. **ViewMenu()** - მენიუს ნახვა
4. **FilterByCategory()** - კატეგორიით ფილტრაცია
5. **AddToOrder()** - კერძის დამატება
6. **PlaceOrder()** - შეკვეთის გაფორმება
7. **ViewMyOrders()** - ჩემი შეკვეთები
8. **ReserveTable()** - მაგიდის დაჯავშნა
9. **AddMenuItem()** - კერძის დამატება (Manager)
10. **UpdateOrderStatus()** - სტატუსის შეცვლა
11. **MakePayment()** - გადახდა