tickets to write:
Chart.js for graphing
frontend
- Statistics page
- new route (/statistics)
- stats icon in navbar
- gridview of graphs
- date picker (mui)
- view dropdown (mui select)
- line graph component
- bar chart component
- pie chart component
- view page
- falls under URL (/statistics/view-id)
- grid of graph components
- get view hook
- get all graph hook
- create new graph page
- new graph form
- live preview
- create new graph hook
- graph details page
- graph component
- metrics/data table
- export graph button
- falls under URL (/statistics/parent-view-id/graph-id)
- create new view modal (NER Modal)
- create new view form
- create new view hook
endpoints
- create new graph endpoint
- get graph endpoint
- edit graph endpoint
- delete graph endpoint
- create new view endpoint
- get view endpoint
- edit view endpoint
- delete view endpoint
models:
Quantifier
Total
Average
Metric:
Type
Car,
Project,
Team,
Change Request,
Budget,
Design Reviews,
User
Quantifier
Graph:
orgId
Timeframe
start date
end date
Title @unqiue with orgId
linkId @unique
graphType
cars: Car[]
teams: Team[]
projects: Project[]
data: Metric
grouping: Metric?
permissions: Permission[] (modify Role model to include permission)
User Created
Deleted
GraphCollection/View:
orgId
Graphs
Timeframe
start date
end date
Title @unique with orgId
linkId
permission: Permission[]
UserCreated
Enum:
graphType:
BAR
LINE
PIE
dataType:
CAR
PROJECT
TEAM
CHANGE REQUEST
BUDGET
DR
USER
values:
SUM
AVERAGE
Models:
Graph
organizationId: String
startDate: DateTime
endDate: DateTime
Title: String
linkId: String
graphType
Cars: Car[]
Teams: Team[]
Projects: Project[]
userCreated: User
userCreatedId: String
dateDeleted: DateTime
Data: GraphData
groupBy: GraphData?
GraphData:
dataType
values
GraphCollection:
organizationId: String
Graphs: Graph[]
startDate ?? : DateTime
endDate ?? : DateTime
Title: String
linkId: String
userCreated: User
userCreatedId: String
dateDeleted: DateTime
User (additions):
createdGraphCollections: GraphCollection[]
deletedGraphCollections: GraphCollection[]
createdGraphs: Graph[]
deletedGraphs: Graph[]
Permissions: should they only apply to just indi graphs or their parent containers too (collections)\
Should start and end dates be fields for both graphs and collections, where graphs by default inherit but can then also override (overengineering? Maybe remove dates from collections and add the dates to the new graph form)??