MapApplication, Başarsoft stajı kapsamında geliştirilen temel bir Coğrafi Bilgi Sistemi (CBS / GIS) uygulamasıdır. Proje; harita üzerinde nokta ve alan verilerinin oluşturulması, görüntülenmesi, güncellenmesi, silinmesi ve PostgreSQL veritabanında WKT (Well-Known Text) formatında saklanması üzerine kuruludur.
Bu uygulama, kullanıcıların web tabanlı bir harita arayüzü üzerinden konumsal verilerle etkileşim kurmasını sağlar. OpenLayers ile harita üzerinde nokta ve poligon çizimleri yapılabilir; çizilen geometriler isimlendirilerek veritabanına kaydedilebilir. Kayıtlı veriler daha sonra harita üzerinde tekrar görüntülenebilir, düzenlenebilir veya silinebilir.
Projenin temel amacı, CBS uygulamalarında kullanılan harita etkileşimleri, geometrik veri yönetimi, WKT formatı, REST API mantığı ve PostgreSQL entegrasyonu gibi konuları pratik bir uygulama üzerinden deneyimlemektir.
- OpenStreetMap tabanlı harita görüntüleme
- Harita üzerine nokta ekleme
- Harita üzerine poligon / alan ekleme
- Nokta ve alan verilerini WKT formatında saklama
- Kayıtlı verileri harita üzerinde görüntüleme
- Kayıtlı geometrileri listeleme ve sorgulama
- Nokta ve poligon bilgilerini güncelleme
- Harita üzerinden manuel konum / geometri düzenleme
- Kayıtlı verileri silme
- REST API üzerinden CRUD işlemleri
- Swagger ile API test desteği
- ASP.NET Core Web API (.NET 8)
- Entity Framework Core
- PostgreSQL
- Npgsql Entity Framework Core Provider
- Repository Pattern
- Unit of Work Pattern
- Swagger / Swashbuckle
- JavaScript
- Vite
- OpenLayers
- Bootstrap
- jsPanel
- Toastr
MapApplication/
├── Controllers/
│ └── PointController.cs
├── Data/
│ └── AppDbContext.cs
├── Services/
│ ├── IRepository.cs
│ ├── Repository.cs
│ ├── IPointRepository.cs
│ ├── PointRepository.cs
│ ├── IUnitOfWork.cs
│ └── UnitOfWork.cs
├── Migrations/
├── wwwroot/
│ └── my-app/
│ ├── index.html
│ ├── main.js
│ ├── style.css
│ └── package.json
├── Point.cs
├── Program.cs
├── appsettings.json
└── MapApplication.csproj
Uygulamada konumsal veriler Point modeli ile temsil edilir.
public class Point
{
public int Id { get; set; }
public string Wkt { get; set; }
public string Name { get; set; }
}Wkt alanı, nokta veya poligon geometrisini WKT formatında tutar. Örneğin:
POINT(34 34)
POLYGON((10.689 -25.092, 34.595 -20.170, 38.814 -35.639, 13.502 -39.155, 10.689 -25.092))
| Metot | Endpoint | Açıklama |
|---|---|---|
| GET | /api/Point |
Tüm kayıtları getirir |
| GET | /api/Point/{id} |
Belirli ID'ye sahip kaydı getirir |
| POST | /api/Point |
Yeni nokta veya alan kaydı ekler |
| PUT | /api/Point/{id} |
Var olan kaydı günceller |
| DELETE | /api/Point/Delete/{id} |
Var olan kaydı siler |
| GET | /api/Point/GetAllJSON |
Harita arayüzü için JSON formatında kayıtları getirir |
- .NET 8 SDK
- Node.js ve npm
- PostgreSQL
- Entity Framework Core CLI
Entity Framework Core CLI yüklü değilse:
dotnet tool install --global dotnet-efgit clone https://github.com/berkay135/MapApplication.git
cd MapApplicationdotnet restoreappsettings.json içindeki WebApiDatabase connection string değerini kendi PostgreSQL ayarlarınıza göre güncelleyin.
"ConnectionStrings": {
"WebApiDatabase": "Host=localhost; Database=MapApplication; Username=postgres; Password=your_password"
}Migration dosyalarını kullanarak veritabanını güncelleyin:
dotnet ef database updatedotnet runVarsayılan geliştirme ortamında Swagger arayüzü şu adresten açılabilir:
https://localhost:7235/swagger
cd wwwroot/my-app
npm installnpm run startVite geliştirme sunucusu varsayılan olarak şu adreste çalışır:
http://localhost:5173
Not: Frontend tarafındaki API istekleri geliştirme ortamında
https://localhost:7235adresine gönderilmektedir. Backend farklı bir portta çalışıyorsawwwroot/my-app/main.jsiçindeki API URL'leri güncellenmelidir.
- Backend uygulamasını başlatın.
- Frontend uygulamasını Vite ile çalıştırın.
- Harita arayüzünde:
Add Pointbutonu ile haritaya nokta ekleyin.Add Areabutonu ile poligon / alan çizin.- Açılan panelden veriye isim verip kaydedin.
- Var olan geometriye tıklayarak güncelleme veya silme işlemleri yapın.
Querybutonu ile kayıtlı verileri tablo halinde görüntüleyin.Viewbutonu ile seçilen kaydın harita üzerindeki konumuna yakınlaşın.
- CBS uygulamalarında temel harita işlemleri
- OpenLayers ile nokta ve poligon çizimi
- WKT formatı ile geometrik veri saklama
- ASP.NET Core Web API geliştirme
- PostgreSQL ve Entity Framework Core kullanımı
- Repository ve Unit of Work pattern kullanımı
- RESTful CRUD operasyonları
- Frontend ve backend arasında API iletişimi
Bu proje staj sürecinde geliştirilmiş eğitim ve pratik amaçlı bir çalışmadır. Production ortamı için güvenlik, validasyon, hata yönetimi, environment bazlı configuration ve deployment ayarlarının ayrıca geliştirilmesi önerilir.