Skip to content

Latest commit

 

History

History
144 lines (111 loc) · 8.55 KB

README_en.md

File metadata and controls

144 lines (111 loc) · 8.55 KB

chulbong- 🇰🇷

k-pullup logo
2024-07-15 pullupbars GitHub commit activity (branch)

Note

The service is running with Go as backend but Spring boot 3 is also available. (WIP)

gochulbong

Project Introduction 🗺️

chulbong-kr is a community platform for finding and sharing pull-up bars in public places.

Using the map API, users can add markers for pull-up bar locations after signing up and logging in, and can upload a photo and a brief description.

Other logged-in users can leave comments on these markers, making it easy to share information and communicate.

0

main Main Screen 2 Marker Information
road view Street View (nearest) comment Comments
nearby Nearby Pull-up Bars offline-pdf Offline Storage (KakaoMap)
consonant Pull-up Bar Address Search (Initials Supported) offline-pdf Suggest Information Edit

slack

chatting

Features

sequenceDiagram
    participant User
    participant AuthService as Auth Service
    participant MarkerService as Marker Service
    participant CommentService as Comment Service
    participant ShareService as Share Service
    participant SearchService as Search Service
    participant AdminService as Admin Service
    participant ChatService as Chat Service
    participant PopularService as Popular Service
    participant OfflineService as Offline Service
    participant AddressService as Address Service

    Note over User, AuthService: User Registration and Authentication
    User->>AuthService: Sign Up with Email
    AuthService->>User: Send Email Verification
    User->>AuthService: Verify Email
    User->>AuthService: Login
    AuthService->>User: Authentication Token

    Note over User, MarkerService: Marker Management
    User->>MarkerService: Add Marker with Location, Photo, Description
    MarkerService->>AddressService: Validate Address
    AddressService-->>MarkerService: Address Validated/Failed
    MarkerService-->>User: Marker Added
    User->>MarkerService: View Marker
    MarkerService-->>User: Display Marker Details

    Note over User, CommentService: Commenting on Markers
    User->>CommentService: Add Comment to Marker
    CommentService-->>User: Comment Added
    User->>CommentService: View Comments
    CommentService-->>User: Display Comments

    Note over User, ShareService: Sharing Markers
    User->>ShareService: Share Marker Link
    ShareService-->>User: Marker Link

    Note over User, SearchService: Searching for Nearby Markers
    User->>SearchService: Search Markers Near Current Location
    SearchService-->>User: Display Nearby Markers

    Note over Admin, AdminService: Admin Tasks
    Admin->>AdminService: Review Markers with Dislikes
    AdminService-->>Admin: Display Markers for Review
    Admin->>AdminService: Update Marker Status
    AdminService-->>Admin: Marker Status Updated

    Note over User, ChatService: Chat Functionality
    User->>ChatService: Join Marker Chat Room
    ChatService-->>User: Joined Chat Room
    User->>ChatService: Send Message in Chat Room
    ChatService-->>User: Message Sent

    Note over User, PopularService: Viewing Popular Markers
    User->>PopularService: View Popular Markers
    PopularService-->>User: Display Popular Markers

    Note over User, OfflineService: Offline Marker Access
    User->>OfflineService: Download Static Map Image
    OfflineService-->>User: Static Map Image with Markers

    Note over User, MarkerService: Suggesting Marker Edits
    User->>MarkerService: Suggest Marker Edit with Photo
    MarkerService-->>User: Edit Suggestion Submitted
Loading
  • Sign Up and Login: Basic sign-up and login functionality for user authentication. (Email verification required)
  • Add Marker: Mark the location of pull-up bars on the map. You can include a photo and a brief description.
  • Comment Feature: Logged-in users can leave comments on each marker to share information.
  • Share Marker: You can share the link by pressing the share button on a specific marker.
  • Search Nearby Pull-up Bars: Function to find pull-up bars near the current central position of the screen.
  • Admin: Automatic first filtering (recorded in the database if no address) + review markers with a certain number of dislikes.
  • Chat: Chat rooms for each marker + regional chat rooms (anonymous).
  • View Popular Locations: Function to check the locations of popular pull-up bars that users frequently visit in real-time. (Based on the current location + nationwide)
  • Offline Static Image: Function to save pull-up bar locations for offline use. (Supplemented with KakaoMap static images)
  • Search Marker Locations: Function to search for the addresses of registered markers (supports initials).
  • Suggest Information Edit: Function to suggest edits to the information of registered markers (requires one photo).

TODO Ideas

  • Community Forum: A community space where users can share workout tips, recommend pull-up bars, and more.
  • Events and Challenges: Hosting workout-related events and challenges for users to participate in.

Technology Stack

image

visual.mp4
  • Backend: Go language Fiber v2, MySQL, AWS S3, LavinMQ (RabbitMQ), Redis, Bleve (Apache Lucene-like, replaced with direct search indexing in ZincSearch)
    • Main: Go, Sub: Java (the entire project is also being written in Java)
  • Frontend: React -> NextJS (TypeScript)
  • Development & Operational Efficiency: pprof, flamegraph, Uber's zap logger, Swagger OpenAPI, Prometheus+Grafana
  • Collaboration: Slack (+ Slack API)

🚀 Project Roles 🚀

Note

Most pull-up bar location data was obtained from chulbong.kr (second filtering)