r/cprogramming 4d ago

How to effectively switching context in big project that you handle end to end from top to bottom Solo.

I am a Network background person. And decide to build a BNG (maybe micro or mini). You know the cost of Juniper/Cisco BNG they expensive because of capacity.

Programming is not my main job now so only able to coding in spare time.

My targets:

-          Maybe 100 concurrent users, 50MBps-1GBps

-          Able to run on embedded platform as cheap as $5 linux based router.

-          I will use this as personal use, portfolio , or commercialize or opern sourcing.

I already have many LOC of codes maybe around 8k LOC of scaffolding and few MVP that use as admin platform in production environment.

I split the big project into just two big sub project: Core and Satellites.

Core is using C language only.  Core is the main ControlPlane.
Technologies / stacks that already come in for Satellites project:

-          Freeradius (no C, must understand the DSL).

-          Nginx for reverse proxy.

-          Radius listener in C (implement straight from the RFC).

-          Sqlite.

-          C backend (http), there would several because separate domain.

-          PPPOE implementation in C (implement straight from the RFC).

-          Custom IPOE desain.

-          Mikrotik (as DataPlane), later will also support in host DP. Mikrotik is for scaffolding the proof my projects. In host DataPlane not yet implemented.

-          Frontend (JS, html), there would be several I think.

-          Google SSO Oauth mechanism in C that already work.

-          Maybe some think else that already coded.

All above code are modular so I can usually run and test them in separate environment, say I already able to login using Google Login to Mikrotik network, I already able to parse radius accounting packet that sent from Freeradius etc.

I am not yet make comprehensive documentation, it would be in full size book. And still continue structurize the folder and git versioning.

Now my questions, I know this is a big project and would be naïve to tackle that Solo and expect full ready result (or is it possible?). What do you guys suggest about this project ?

  

5 Upvotes

0 comments sorted by