Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yasin4261/social-media
Social media web api with java spring
https://github.com/yasin4261/social-media
backend-api java maven social-media spring-boot
Last synced: 24 days ago
JSON representation
Social media web api with java spring
- Host: GitHub
- URL: https://github.com/yasin4261/social-media
- Owner: Yasin4261
- License: mit
- Created: 2024-09-10T15:48:24.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2024-10-01T10:52:20.000Z (about 1 month ago)
- Last Synced: 2024-10-14T20:40:36.882Z (24 days ago)
- Topics: backend-api, java, maven, social-media, spring-boot
- Language: Java
- Homepage:
- Size: 36.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SocialMaker
SocialMaker, kullanıcıların gönderi oluşturabileceği, diğer kullanıcılarla etkileşime geçebileceği ve kendi profillerini yönetebileceği bir sosyal medya uygulamasıdır.
## Proje Özeti
SocialMaker, kullanıcıların sosyal medya ortamında etkileşimde bulunmalarını sağlar. Kullanıcılar profil oluşturabilir, gönderiler paylaşabilir, diğer kullanıcılarla etkileşim kurabilir ve daha fazlasını yapabilir. Bu proje, modern web teknolojilerini kullanarak esnek ve ölçeklenebilir bir yapı sunar.
## Özellikler
- **Kullanıcı Kaydı ve Girişi**: Kullanıcılar sisteme kayıt olabilir ve giriş yapabilir.
- **Profil Yönetimi**: Kullanıcılar profil bilgilerini güncelleyebilir, profil fotoğraflarını yükleyebilir.
- **Gönderi Paylaşımı**: Kullanıcılar gönderi oluşturabilir, görüntüleyebilir ve silebilir.
- **Gönderilere Yorum Yapma**: Kullanıcılar gönderilere yorum yapabilir.
- **Gönderileri Beğenme**: Kullanıcılar gönderileri beğenebilir.
- **Bildirimler**: Kullanıcılar kendilerine yapılan etkileşimler hakkında bildirim alabilir.
- **Takip Sistemi**: Kullanıcılar birbirlerini takip edebilir ve takipçilerini görebilir.## Kurulum
### Gereksinimler
- Java 17+
- Maven
- MySQL veya H2 veritabanı
- Docker (opsiyonel, veritabanını çalıştırmak için)### Adım 1: Depoyu Klonlayın
```bash
git clone https://github.com/kullanici/socialmaker.git
cd socialmaker
```### Adım 2: Veritabanı Kurulumu
- **MySQL Kullanıyorsanız:** `application.properties` dosyasında MySQL yapılandırmanızı yapın.
```bash
spring.datasource.url=jdbc:mysql://localhost:3306/socialmaker_db
spring.datasource.username=root
spring.datasource.password=yourpassword
```- **H2 Veritabanı Kullanıyorsanız:** H2 veritabanı ayarlarını kullanarak projenizi başlatabilirsiniz.
```bash
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
```### Adım 3: Maven Bağımlılıklarını Yükleyin
```bash
mvn clean install
```### Adım 4: Projeyi Başlatın
```bash
mvn spring-boot:run
```Proje başarıyla başlatıldığında, API `http://localhost:8080` adresinde çalışacaktır.
## Kullanım
### API Endpoints
- **Kullanıcı Kaydı ve Girişi`**
- `POST /api/auth/register`: Kullanıcı kaydı
- `POST /api/auth/login`: Kullanıcı girişi- **Profil Yönetimi**
- `GET /api/users/{userId}`: Kullanıcı profil bilgilerini getirir
- `PUT /api/users/{userId}/update-profile`: Kullanıcı profil bilgilerini günceller
- `POST /api/users/{userId}/upload-profile-picture`: Profil fotoğrafı yükleme- **Gönderiler**
- `POST /api/posts`: Yeni gönderi oluşturur
- `GET /api/posts/user/{userId}`: Belirtilen kullanıcıya ait gönderileri getirir
- `DELETE /api/posts/{postId}`: Gönderiyi siler- **Yorumlar**
- `POST /api/posts/{postId}/comments`: Gönderiye yorum yapar
- `GET /api/posts/{postId}/comments`: Gönderinin yorumlarını getirir- **Beğeniler**
- `POST /api/posts/{postId}/like`: Gönderiyi beğenir
- `POST /api/posts/{postId}/unlike`: Gönderiyi beğenmekten vazgeçer- **Takip**
- `POST /api/users/{userId}/follow/{followedUserId}`: Kullanıcıyı takip eder
- `DELETE /api/users/{userId}/unfollow/{followedUserId}`: Takipten çıkar## Örnek API Kullanımı
```bash
curl -X POST http://localhost:8080/api/auth/register \
-H 'Content-Type: application/json' \
-d '{"username": "johndoe", "email": "[email protected]", "password": "123456"}'
```## Katkıda Bulunma
Katkıda bulunmak için lütfen bir fork yapın ve ardından bir pull request gönderin. Değişikliklerinizi detaylıca açıklamayı unutmayın.## Lisans
Bu proje MIT Lisansı altında lisanslanmıştır. Daha fazla bilgi için `LICENSE` dosyasına bakın.## İletişim
Herhangi bir sorunuz veya geri bildiriminiz için [mail]([email protected]) adresinden bana ulaşabilirsiniz.