Skip to content

Distributed architecture-based server application for fzuhelper, serving more than 「 23,000 」 teachers and students in the school everyday

License

Notifications You must be signed in to change notification settings

SmilingSea/fzuhelper-server

 
 

Repository files navigation

fzuhelper-server

Overview

fzuhelper-server is a distributed architecture-based server application for fzuhelper, which has been in use since 2024, serving over 23,000 students from Fuzhou University everyday (Data source and introduction to fzuhelper).

This project focuses on business implementation. To see how we interface with the academic affairs office, you can check out our open-source version at west2-online/jwch.

fzuhelper was launched in 2015, developed from scratch by west2-online and continuously operated, providing students with industrial-grade practice as much as possible on campus and offering robust support for student employment.

Features

  • Cloud-Native: native golang distributed architecture design, based on ByteDance's best practices.
  • High Performance: Supports asynchronous RPC, non-blocking I/O, shared memory communication, and Just-In-Time (JIT) compilation.
  • Scalability: Features a modular, layered structural design, with clear and readable code, reducing development difficulty.
  • DevOps:An abundance of scripts and tools reduce unnecessary manual labor, simplifying usage and deployment.

Project structure

.
├── .golangci.yml              # GolangCI configuration
├── .licenseignore
├── go.mod
├── go.sum
├── LICENSE
├── Makefile                   # some useful commands
├── README.md
├── api                       # gateway
├── cmd                       # microservices entry
├── config                    # configuration files and examples
├── docker                    # Docker build configuration
├── docs
├── hack                      # tools for automating development, building, and deployment tasks
├── idl                       # interface definition
├── internal                  # microservices implementation
├── kitex_gen                 # kitex generated code
└── pkg
    ├── base/                 # common base service
    │   └── client/           # client for corresponding components (redis, mysql e.g.)
    ├── cache/                # cache service
    ├── db/                   # database service
    ├── constants/            # store any consts
    ├── errno/                # custom error
    ├── eshook                # elasticsearch hook
    ├── logger/               # logging system
    ├── tracer/               # for jaeger
    └── utils/                # useful funcs

Quick start and deploy

Due to the script we have written, the process has been greatly simplified. You just need to use the following command to quickly start the environment and run the program in a containerized manner.

please visit: deploy

Architecture

Contributors

If you are interested in joining the maintenance of fzuhelper-server, please contact us on our official website

License

fzuhelper-server is licensed under the Apache 2.0 license. See the LICENSE file for details.

About

Distributed architecture-based server application for fzuhelper, serving more than 「 23,000 」 teachers and students in the school everyday

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 85.1%
  • Thrift 6.1%
  • Shell 5.9%
  • Makefile 2.5%
  • Dockerfile 0.4%