This is the codebase for the Brainy Kids backend and administration panel. This repository also includes the code required for ingesting analytics from the various applications. Keep in mind that this application has to be running only on a single computer/server. All other teachers, administrators, etc will access it through the web.
- Make sure you have Node.js installed (Make sure
node --version
prints out a version number) - Make sure you have the latest version of MongoDB set up either locally or point it to a remote server (see "Getting Started")
- If you want to install this for actual use, make sure you install it on a server that can be accessed by any computer that wants to use it. This usually means the server should have a static IP address and correct port forwarding/firewall configuration.
- You must have npm installed. Run
npm --version
in your terminal and expect to see a version number printed out
- Clone this repository (
git clone [email protected]:jvt/Brainy-Kidz.git
) - Open the repository (
cd Brainy-Kidz
) - Install the dependencies (
npm install
) - Duplicate
.env.example
and rename it to.env
- Open the
.env
file and add a JWT_SECRET. It should be a random series of letters / numbers. This string is used to encrypt all the tokens for access to the site. - Also set
MONGODB_URI
to either point to your local machine or wherever your MongoDB is. - Make sure your instance of MongoDB is running
- Start the application with
npm run dev
- Navigate your browser to
localhost:3000
Now other users should be able to access the application by navigating to it in their web-browser.
- The program will exit on startup if it is unable to find an instance of MongoDB running at the set URI. Be sure that the instance of MongoDB is running before you start the program.
- If the program crashes on startup with error messages mentioning the word "dependicies" run
npm install
in the root directory of the project again.
- Various REST API endpoints is available now to access and manipulate information for student, focus items, program, analytics.
- You can access information for all students, focus items, programs, and analytics in addition to create, retrieve, update, and delete information for a single student, focus item, program, and analytic.
- Our application provides secured access to all information. Authentication of users is done through the use of Json Web Token (JWT)
- If you are a teacher, there is a web interface designed specifically for you. It facilitates you in managing your students' accounts and monitoring their learning progresses.
- Concerned about FERPA regulations for sensitive information regarding your students, Our application is not storing any of the identifiable information at any time.
- You can upload data on students, focues items, program, analytics from csv files.
- In addition, anlytics to assess learning performances of each and all of your students is supported, and you can easily access these analytics in your web portal.
[None]
[None]
- From any page on the website, press
CTRL + h
(Configured in/frontend/components/DevTools.js
) to open the Redux DevTools panel - From here, you can view the global state of the application.
- To move the window around, press
CTRL + w
- From a terminal window, run
npm run test
ornpm test
(both do the same thing) - Let the tests run, it will generate a coverage window in the terminal once all the tests have completed running
CI is provided by CircleCI and runs on every pull request to ensure tests pass. Merging is disabled until tests pass.