Skip to content

Commit 078b5bc

Browse files
committed
Add a directory structure file for discussion.
1 parent bde43c9 commit 078b5bc

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

docs/directory-structure.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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
10+
# the app wide "lib" location (and perhaps should be called that instead -- the name is up for debate). For now
11+
# this will contain all of the files that are now directly in src except App.ts and index.template.html. Note
12+
# that what is now src/common.ts will be renamed src/common/views.ts (to more accurately reflect its contents
13+
# and not have 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
19+
# subdirectories for complicated common components. Simple components that only have one vue file should not be
20+
# in a subdirectory, unless there are a class of related components that should be grouped together. A
21+
# complicated enough component 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
28+
# up 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
32+
# be the main component(s) for that page. Then there will possibly be a "components" directory in that for
33+
# components only used on that page, a common (or lib) directory for typescript files only used by that page,
34+
# and possibly even assets and css subdirectories. Basically the structure inside a directory here is an
35+
# iteration of the main level structure (without boot, locales, router, store, and typings -- well, maybe store
36+
# for a local store instance?).
37+
# Note that it doesn't really make sense to sort things by roles because roles don't divide pages in a good way.
38+
# Pages can possibly be used by multiple roles. So no "instructor" or "student" or "admin" directories. Use
39+
# logic to determine who has access to what, not directories.
40+
# General Idea:
41+
LibraryBrowser:
42+
LibraryBrowser.vue
43+
components:
44+
LibPanelDir.vue
45+
LibPanelLocal.vue
46+
LibPanelOPL.vue
47+
LibPanelSearch.vue
48+
common:
49+
ProblemEditor:
50+
ProblemEditor.vue
51+
HomeworkSets:
52+
HomeworkSetsEditor:
53+
54+
etc.
55+
56+
router:
57+
# router stuff!
58+
store:
59+
# The stores current structure is good
60+
models:
61+
modules:
62+
typings:
63+
# Typescript type files. This should contain "all" .d.ts files (store-flag.d.ts should be moved here).

0 commit comments

Comments
 (0)