Scale up of the code quality standard across African young developers and make a meaningful impact on helping young people to learn coding 24/7 anywhere in Africa.
# skylla-learning-community
Scale up the code quality standard across African young developers and make a meaningful impact on helping young people to learn coding 24/7 anywhere in Africa.
Folder Structure
================
Please note
------------
Typically we will follow this folder structure to guide us.
Motivations
-----------
- Clear feature ownership
- Module usage predictibility (refactoring, maintainence, you know
what's shared, what's not, prevents accidental regressions,
avoids huge directories of not-actually-reusable modules, etc)
- CI runs only the tests that matter (future)
- Code splitting (future)
How it works
------------
The file structure maps directly to the route hierarchy, which maps
directly to the UI hierarchy.
It's inverted from the model that we've used in other systems. If we
consider all folders being either a "generic" or a "feature" folder, we
only have one "feature" folder but many "generic" folders.
Examples of "feature" folders:
server
- static
- index.py
client
- Admin
- Users
- Live support
Examples of "generic" folders:
- components
- helpers
- stores
- actions
Given this route config:
```js
var routes = (
);
```
We would now set up our directories like this:
```
server
├── static
| ├── static
| └── asset-manifest.json
| └── index.html
| └── manifest.json
| └── service-worker.js
| ... etc.
└── index.py
/dashboards/{userid & pwd}
{
roles: {
alice: "admin",
bob: "trainer",
david: "trainee",
// ...
}
}
We can access the user's Dashboards using userid and password:
/dashboards/{userid}/
```
```
client
└── src
└── App
└── screens
├── Admin
│ └── Dashboard
│ ├── Reports
│ └── Users
| └── Interviews
| └── Hire
| └── Announcements
└── Module
| └── screens
| └── Assessments
| └── Quiz & Tests
| └── Sessions
| └── Class
└── Support
| └── screens
| └── General
| └── Product & Services
| └── Purchase
| └── Code & Debug
└ …