System Design Document

Teamster Web Application

用中文阅读

1. Purpose and Overview

The Teamster web application is designed to manage promotional campaigns and simplify the workflow for Coinstore, a cryptocurrency exchange. The app serves three types of users: Admin, Community Managers (CM), and Teamsters (workers). Teamsters promote campaigns on social media, submit post links, and receive evaluations, while Admins and CMs manage and evaluate submissions. The application automates key processes like submission, validation, and performance evaluation, reducing manual effort and errors.

2. Functional Requirements

The application supports the following core functionalities:

3. Non-Functional Requirements

4. System Architecture

Teamster follows a monolithic architecture, with tightly integrated components for user management, promotions, submissions, and scraping. The system is hosted on a DigitalOcean Linux server with Caddy as the reverse proxy for load balancing and caching.

5. Data Flow and Models

User Login & Access: Upon login, users are directed to dashboards based on their role (Admin, CM, or Teamster).

Data Submission & Scraping:

Key Data Tables:

6. Technology Stack

7. APIs and Endpoints

The system provides REST APIs for all operations:

8. Security Considerations

9. Deployment and Scalability

10. Challenges and Future Enhancements

Challenges:

Future Enhancements: