Goal: To facilitate and improve the learning process of Cambodian Students as they prepare for their College Entrance English Exam by tracking the progress of students and their interactions with tutors.
We split this application into Frontend and Backend services. The backend is GraphQL server using Express and Node.js 8.x.x with MongoDB, a NoSQL database, as our choice of data store. The Frontend is built with React 16.2.x and Relay, which is a GraphQL client used to interact with the backend.
react_frontend
: frontend top directorysrc/
components/
: holds all the React componentspages/
: holds all the Pages (we use React Router for client-side routing)relay/
: holds relay configuration files and mutationsGapi.js
: Google Drive utility functionsindex.html
: entry HTML fileindex.js
: entry javascript file
assets/
: holds CSS files and images usedeslintrc.json
: eslint configuration file.babelrc
: Babel configuration file for transpilationpackage.json
: Configuration file and dependenciesschema.graphql
: GraphQL schema auto-generatedwebpack.config.js
: Webpack configuration file to bundle the frontend
web-backend
: backend top directorysrc/
models/
: Mongoose Models for MongoDBschema/
: holds GraphQL Mutations, Queries, and Typesmutations/
: holds mutations, which creates/mutate/delete typesqueries/
: holds GraphQL Queries, which reads datatypes/
: holds GraphQL types, which extendmodels/
scripts
: holds script to export the Schema toreact_frontend/schema.graphql
for the frontend to useindex.js
: entrance script, sets up MongoDB connection and starts GraphQL serverpackage.json
docs/
: Documentation for backendeslintrc.json
: eslint configuration file.babelrc
Specific Documentation is given inside the react_frontend
and web_backend
folders.
- Node.js 8.x.x
- npm or yarn
First install yarn.
npm install yarn
To run the graphql server in the backend
cd web_backend
yarn # install dependencies
yarn run build
yarn run exportSchema
yarn run start
To run the frontend
cd react_frontend
yarn # install dependencies
yarn run relay # will recompile graphql queries and regenrate files
yarn run dev
Note: if you prefer using npm, use npm
instead of yarn
in commands provided above
- Product Manager - Timothy Ko (@tko22)
- Technical Lead - Aria Malkani (@CodeBrew28)
Software Devs
- Shreyas Mohan (@shreyshrey1)
- Hana Rimawi (@HRimaw2)
- Michael Chen (@Feeshay)
- Alan Ren (@alanren2)