Using AWS Amplify, this project has the following configured backend resources:
- 2 DynamoDB tables
- Save user attributes from external IDP provider (For future development)
- Save user survey responses to provide best recommendation onto their feeds
- A GraphQL API that allows the app to query data from the above 3 tables
- An S3 Bucket for storing the GeoJSON data used in the heatmap
- A Lambda Function for searching for similarities between FSAs
enum CensusProvinceOption {
CAN
AB
BC
MB
NB
NL
NS
NT
NU
ON
PE
QC
SK
YT
}
type CensusDataEntry
@model
@aws_api_key
@key(
name: "censusDataByCategoryFSA"
fields: ["CID", "FSA"]
queryField: "censusDataByCategoryFSA"
)
@key(name: "censusDataByFSA", fields: ["FSA"], queryField: "censusDataByFSA")
@key(
name: "censusDataByProvinceCID"
fields: ["PROVINCE", "CID"]
queryField: "censusDataByProvinceCID"
) {
FSA: String!
CID: Float
TOTAL_COUNT: Float
MALE_COUNT: Float
FEMALE_COUNT: Float
PROVINCE: CensusProvinceOption!
CATEGORY: String!
HEADER: String!
TOTAL_PERCENT: Float
}
enum ProvinceOption {
AB
BC
MB
NB
NL
NS
NT
NU
ON
PE
QC
SK
YT
}
enum DonationTypeOption {
COUPLE_WITH_CHILDREN
LONE_PARENT_FAMILIES
COUPLE_WITHOUT_CHILDREN
PERSONS_NOT_IN_CENSUS_FAMILIES
l20K
l40K
l60K
l80K
l100K
l150K
l200K
l250K
ge250K
}
type DonationDataEntry
@model
@aws_api_key
@key(
name: "donationDataByTypeFSA"
fields: ["TYPE", "FSA"]
queryField: "donationDataByTypeFSA"
)
@key(
name: "donationDataByFSA"
fields: ["FSA"]
queryField: "donationDataByFSA"
)
@key(
name: "donationDataByTypeProvince"
fields: ["PROVINCE", "TYPE"]
queryField: "donationDataByTypeProvince"
) {
FSA: String!
TYPE: DonationTypeOption!
YEAR: Float
NUM_FAM: Float
TOT_DONS: Float
NUM_DONS: Float
MEDIAN_DON: Float
DON_RATE: Float
PROVINCE: ProvinceOption
}