Skip to content

Commit 55cce60

Browse files
committed
Add a directory structure file for discussion.
1 parent bde43c9 commit 55cce60

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

docs/directory-structure.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
src:
3+
assets:
4+
# Application wide images and other such non src type files. Generally any binary files needed application
5+
# wide.
6+
boot:
7+
# Quasar boot files
8+
common:
9+
# This directory should contain typescript files that are needed in many places. This will probably be sort of the
10+
# app wide "lib" location (and perhaps should be called that instead -- the name is up for debate). For now this
11+
# will contain all of the files that are now directly in src except App.ts and index.template.html. Note that what
12+
# is now src/common.ts will be renamed src/common/views.ts (to more accurately reflect its contents and not have
13+
# src/common/common). I have a branch that does this already.
14+
# This is probably were what is currently in APIRequests should go also (I think it should be called
15+
# renderer-requests.ts though to not confuse it with ww3 api requests).
16+
components:
17+
# Vue components that are used on many pages.
18+
# There will certainly NOT be a common directory in here. It is all common. However, there may be subdirectories
19+
# for complicated common components. Simple components that only have one vue file should not be in a subdirectory,
20+
# unless there are a class of related components that should be grouped together. A complicated enough component
21+
# could also have the directory structure described below for a page.
22+
css:
23+
# Application wide css.
24+
layouts:
25+
# App layouts
26+
locales:
27+
# Currently i18n. The only things that will be here are the translation yml files (no ts or vue). This is set up
28+
# in another branch that I have.
29+
pages:
30+
# The first level of subdirectories here should correspond to actual pages in the ui. Not split by who has
31+
# permissions to view them (like instructor, student, etc). Inside of each of these at the first level should be
32+
# the main component(s) for that page. Then there will possibly be a "components" directory in that for components
33+
# only used on that page, a common (or lib) directory for typescript files only used by that page, and possibly even
34+
# assets and css subdirectories. Basically the structure inside a directory here is an iteration of the main level
35+
# structure (without boot, locales, router, store, and typings -- well, maybe store for a local store instance?).
36+
# Note that it doesn't really make sense to sort things by roles because roles don't divide pages in a good way.
37+
# Pages can possibly be used by multiple roles. So no "instructor" or "student" or "admin" directories. Use logic
38+
# to determine who has access to what, not directories.
39+
# General Idea:
40+
LibraryBrowser:
41+
- LibraryBrowser.vue
42+
- components:
43+
- LibPanelDir.vue
44+
- LibPanelLocal.vue
45+
- LibPanelOPL.vue
46+
- LibPanelSearch.vue
47+
- common:
48+
ProblemEditor:
49+
- ProblemEditor.vue
50+
HomeworkSets:
51+
HomeworkSetsEditor:
52+
53+
# etc.
54+
55+
router:
56+
# router stuff!
57+
store:
58+
# The stores current structure is good
59+
models:
60+
modules:
61+
typings:
62+
# Typescript type files. This should contain "all" .d.ts files (store-flag.d.ts should be moved here).

0 commit comments

Comments
 (0)