badges / badges/shields

Modernizing the server

Open
#3,328 4 comments 0 reactions 0 assignees View on GitHub
core
Dominant language
JavaScript
Stars
27.2k
Forks
5.6k
Avg merge
1d 8h
Merged PRs (30d)
46

Description

Since the legacy services have almost all been rewritten and the modern services are well abstracted from the server, I'd like to start work on modernizing the server itself.

The server is not a lot of code, though it is a bit tricky, and it's code that I'd like to be as transparent as possible to new people who are reading it.

Scoutcamp has served this project well for a long time, and much respect is due to @espadrine and @jankeromnes for creating something that has performed so well for so long. However there are some downsides, mainly that the framework isn't fully documented, the code is difficult to read, and it hasn't gotten wide adoption. I'd like to move forward with something else.

Criteria would be:

- Good documentation, active maintenance, and high test coverage.
- Native support for async/await support.
- Works well with [path-to-regexp](https://github.com/pillarjs/path-to-regexp) and provides an implementation path for trie-based routing.

I've started playing around with [micro](https://github.com/zeit/micro), [micro-router](https://github.com/pedronauck/micro-router), and [routington](https://github.com/pillarjs/routington). One idea is to create a `micro-trie-router` using `routington` and based on code from `micro-router`.

Contributor guide

Open the contributing guide

Research direction

No file, test, or server entry point is named. Start by locating the current Scoutcamp server and compare it with the stated documentation, maintenance, async/await, routing, and test-coverage criteria; review micro, micro-router, and routington before deciding whether a micro-trie-router is appropriate.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.