开源的活动筹办系统,基于 Koa、TypeScript 和 的 Node.js RESTful API 项目。
- HTTP server: Koa
- Controller framework: Routing Controllers
- Model framework: Class Transformer & Class Validator
- ORM framework: TypeORM
- API document: Swagger
- Mock API: OpenAPI backend
- Test framework: Jest
- API entry & Health checking
- User & Session
- Email OTP (One Time Password)
- OAuth sign in
- recommend to use with Next SSR middleware
- WebAuthn sign in
- recommend to use with Passwordless ID
- Activity logging
- File object storage
办完一场小型免费活动的建模,且兼容后续大中型活动的数据结构:
-
User 组织者、讲师、合作方联系人、志愿者等
-
Organization 主办、协办、场地、赞助、媒体、展商等
-
Membership 组织关系(User 与 Organization)
-
Place 会场(会议室、教室、咖啡馆等)
-
Activity 小型沙龙、中型活动、大型会议
-
Cooperation 合作关系(Activity 与 Organization)
-
Session 活动环节(演讲、实训等)
-
Agenda 环节申报(Activity 与 Session)
-
Ticket 门票类别(单 Activity、多 Session)
-
TicketOrder 门票订单(User 与 Ticket)
-
CheckEvent 环节打卡(User 与 Agenda)
-
Track 分会场、议程轨(相当于分类)
-
Exhibition 外场展位
-
Material 物料
-
Account 账目(赞助、差旅、物料、门票等)
-
Feedback 活动反馈(多 Session、多 Exhibition)
-
Install GitHub apps in your organization or account:
- Probot settings: set up Issue labels & Pull Request rules
- PR badge: set up Online VS Code editor entries in Pull Request description
-
Click the Use this template button on the top of this GitHub repository's home page, then create your own repository in the app-installed namespace above
-
Click the Open in GitHub codespaces button on the top of ReadMe file, then an online VS Code development environment will be started immediately
-
Recommend to add a Notification step in GitHub actions for your Team IM app
-
Remind the PMs & users of your product to submit Feature/Enhancement requests or Bug reports with Issue forms instead of IM messages or Mobile Phone calls
-
Collect all these issues into Project kanbans, then create Pull requests & add
closes #issue_number
into its description for automation
- Entry: http://localhost:8080/
- Document: http://localhost:8080/docs/
- Schema: http://localhost:8080/docs/spec/
- Type: https://github.com/Open-Source-Bazaar/ActivityHub-service/pkgs/npm/activityhub-service
Name | Usage |
---|---|
APP_SECRET |
encrypt Password & Token |
DATABASE_URL |
PostgreSQL connection string |
SUPABASE_PROJECT_URL |
Supabase project URL |
SUPABASE_ANON_KEY |
Supabase anon key |
AWS_S3_END_POINT |
AWS S3 endpoint URL |
AWS_S3_BUCKET |
AWS S3 bucket name |
AWS_S3_ACCESS_KEY_ID |
AWS S3 access key id |
AWS_S3_SECRET_ACCESS_KEY |
AWS S3 secret access key |
AWS_S3_PUBLIC_HOST |
AWS S3 public host |
npm i pnpm -g
pnpm i
pnpm dev
or just press F5 key in VS Code.
pnpm upgrade:dev
npm start
pnpm upgrade:pro
pnpm pack-image
pnpm container
git checkout master
git tag v1.0.0 # this version tag comes from ./package.json
git push origin master --tags
git checkout master
git tag type-v1.0.0 # this version tag comes from ./type/package.json
git push origin master --tags