Linki is an all-in-one marketing platform that seamlessly connects influencers and advertisers.
Influencers can join brand campaigns, while advertisers can easily discover and contract with the right influencers.
The platform ensures a secure and transparent advertising ecosystem with features like electronic contracts, real-time chat, and automated settlements.
- Java 17+
- Node.js 18+
- MySQL 8.0+
- Redis 6.0+
- Apache Kafka 2.8+
mysql -u root -p < quries/tableInit.sql
mysql -u root -p linkiDB < quries/dummydata.sqlcd discovery-service
./gradlew bootRun
# http://localhost:8761cd apigateway-service
./gradlew bootRun
# http://localhost:8000# Integration Service
cd integration-service && ./gradlew bootRun
# Chat Service
cd ../chat-service && ./gradlew bootRun
# Payment Service
cd ../payment-service && ./gradlew bootRun
# Subscribe Service
cd ../subscribe-service && ./gradlew bootRun
# Admin Integration Service
cd ../admin-integration-service && ./gradlew bootRun
# Chatbot Service
cd ../chatbot-service && ./gradlew bootRuncd frontend/linki-user
npm install
npm run dev
# http://localhost:3001Pinia persisted state plugin
npm install pinia-plugin-persistedstate@3
cd frontend/linki-admin
npm install
npm run dev
# http://localhost:3002Check each service's application.yml or application.properties:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka
spring:
datasource:
url: jdbc:mysql://localhost:3306/linkiDB
username: your_username
password: your_password
redis:
host: localhost
port: 6379export SECRET_HS256=your_jwt_secret_key
export YOUTUBE_API_KEY=your_youtube_api_key
export UCAN_SIGN_API_KEY=your_ucan_sign_key
export TOSS_CLIENT_KEY=your_toss_client_key
export TOSS_SECRET_KEY=your_toss_secret_key
export OPENAI_API_KEY=your_openai_api_keyKey Tables
user: Basic user infoinfluencer: Influencer detailsadvertiser: Advertiser detailschannel: YouTube channel infocampaign: Campaign detailsproposal: Proposal detailscontract: Contract infosettlement: Settlement detailschat: Chatroom infomessage: Message content
User Management
POST /v1/api/auth/login— User loginPOST /v1/api/auth/register— User registrationGET /v1/api/user/profile— Get user profile
Campaign
GET /v1/api/campaigns— List campaignsPOST /v1/api/campaigns— Create campaignPOST /v1/api/proposals— Submit proposal
Contract
POST /v1/api/contracts— Create contractGET /v1/api/contracts/{id}— Get contractPUT /v1/api/contracts/{id}/complete— Complete contract
Chat
GET /v1/chat-service/api/chats— List chat roomsWebSocket /ws/chat— Real-time chat
Payments
POST /v1/payment-service/api/billing— Register billing keyPOST /v1/subscribe-service/api/subscribe— Subscribe
- JWT authentication/authorization
- Spring Security
- CORS policy
- API rate limiting
- Sensitive info encryption
- DB lock for concurrency
- Redis caching
- 54 DB indexes
- Keyset pagination
- Kafka async processing
- CDN for static files
- Fork the repo
- Create your branch (
git checkout -b feature/AmazingFeature) - Commit (
git commit -m 'Add some AmazingFeature') - Push (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
- Nanhee Jeong: Advertiser Features
- Minhyeok Shin (Team Lead): Data Analysis, Admin Features
- Yoonah Ko (Deputy Lead): Docs, Chat
- Jeongseop Lee: Network, Payment/Subscription, MSA Infra
- Sungjun Kim: Security, User, Chatbot
- Seonmin Kim: Influencer Features
For any inquiries, please open an issue or contact us via email.
Linki — An innovative marketing platform connecting influencers and brands 🚀