Code Monkey home page Code Monkey logo

mathquest's Introduction

MathQuest - Mathematics Learning Management System

mathquest-home

Contents

Overview

MathQuest is an online learning management system designed specifically to deliver math courses and curriculum in an asynchronous format, allowing students to learn at their own pace. It provides capabilities for instructors to create course offerings, design quizzes and assignments, grade student work automatically, facilitate text discussions, and continually update course content, while students can browse courses, register, take assessments, participate in discussions with classmates, and track their progress. The system architecture employs a combination of MVC, client-server, and microservices patterns to enable a scalable, extensible, and modular platform that can handle multiple concurrent users.

How to get started with MathQuest

Student Flow:

Student Flow

Instructor Flow:

Instructor Flow

Admin Flow:

Admin Flow

Features

Key features of MathQuest LMS include:

  • Course offerings and registration: Instructors can create course offerings that students can browse and register for. This includes publishing detailed course information like syllabus, modules, assessments, etc.
  • Course content and curriculum: Instructors can create and manage course content including modules, quizzes, assignments, and syllabus.
  • Assessments and grading: Quizzes can be created, automatically graded, and feedback provided to students. Overall course grades are calculated.
  • Discussions: Students and instructors can engage in threaded discussions within a course.
  • User roles and permissions: The system supports student, instructor, and administrator roles with appropriate access controls.
  • Administrative capabilities: Admins can approve/reject course requests, manage instructors, and moderate content.

High Level System Architecture

Technology Stack

Engineering Activity Selected Tool(s)
Version Control GitHub
Development IDE Visual Studio Code
Wireframe & UI Screens Balsamiq
Project Planning Microsoft Excel
Diagramming LucidChart
Frontend React
Backend Node.js
Database MongoDB
Testing Jest, Karma

API Endpoints

Anything within <angular brackets> is a parameter.

Endpoint Description Type
/api/users/login Authenticates a user for the MathQuest system. POST
/api/users/signup Creates a new User for the MathQuest system. POST
/api/courses Gets a list of all available published courses. POST
/api/courses/teachers/getAllCourses Gets a list of all courses created by a teacher. POST
/api/courses/registered/getRegisteredUsers Gets a list of registered users within a specific course. POST
/api/courses/hideCourse Hides or un-publishes a course from the list of available courses. POST
/api/courses/filterCoursesByStatus Fetches a list of courses according to their Request Status POST
/api/courses/changeRequestStatus Changes the Request Status of a course. POST
/api/courses/quizzes/grades/gradeQuiz Grades and calculates the total points earned by a student after submitting a quiz. POST
/api/courses/registered Gets a list of courses that a student is registered in. POST
/api/courses/registered/new Registers a student in a new course. POST
/api/courses/discussions/getAllThreads Gets a list of threads created by students within a specific course. POST
/api/courses/discussions/getAllReplies Get a list of replies created by students in a specific thread. POST
/api/courses/discussions/createThread Creates a new thread within a course. POST
/api/courses/discussions/createReply Creates a new reply to an existing thread. POST
/api/courses/quizzes/getAllQuizzes Gets a list of quizzes for a specific course. POST
/api/courses/quizzes/getQuiz Gets a specific quiz, all questions and their options for a specific course. POST

Development Setup

You need to clone (download) the repository to your local machine using the below command in the terminal

   $ git clone https://github.com/ris-tlp/mathquest.git

This makes a local copy of the repository in your machine

Once you have cloned the mathquest repository in Github, move to that folder first using the change directory cd command on Linux/ Mac/ Windows

   $ cd mathquest

Then open the terminal inside mathquest folder and run the following command

   $ code .

The above command opens the project folder in Visual Studio Code which will be the IDE for Mathquest Development (Feel free to use the IDE of your choice)

Once you have downloaded the source code of MathQuest in your local, make sure npm and node are installed on your machine, then follow the below part 1 and part 2 to start the MathQuest application in your development environment.

Part 1

First, navigate to the mathquest-client folder

   cd mathquest-client

Then, let us install the dependencies required on the client side of the Mathquest application.

   npm install

The above command installs the dependencies mentioned in the package-lock.json file of mathquest-client

Now, we can start the application using the below command:

   npm run start

Part 2

First, navigate to the server folder

   cd server

Then, let us install the dependencies required on the server side of the Mathquest application.

   npm install

The above command installs the dependencies mentioned in the package-lock.json file of server

Run the below command to start the mathquest server

   npm run dev

If everything is up and running, you should see the home page of MathQuest application running on localhost

Test Results

Front-End Test Coverage:

Back-End Test Coverage:

Contributor/ Team Members

Team Member Name Linkedin
Anand Verma Linkedin Anand
Tharun Kumar Reddy Polu Linkedin Tharun
Omar Khan Linkedin Omar
Ashwini Gour Linkedin Ashwini
Cydni Turner Linkedin Cydni

Frequently Asked Questions

1. What types of math courses does MathQuest offer?
Ans: MathQuest offers a wide variety of math courses including Algebra, Geometry, Trigonometry, Calculus, Statistics, and more. Courses are available for middle school, high school, college prep, and college levels.

2. Do I need any special software or hardware to use MathQuest?
Ans: No, MathQuest is a web-based platform that works on any modern web browser. The only requirement is an internet connection.

3. How do I register for courses on MathQuest? Is there an enrollment period?
Ans: You can register for courses at any time by creating a student account on our platform. There is no enrollment period - you can sign up and start courses immediately.

4. Can I access MathQuest on my phone or tablet?
Ans: Yes, MathQuest is mobile-friendly and can be accessed from any device with a web browser including phones and tablets. This allows for on-the-go learning.

5. Are there options for getting help if I have questions on course material or assessments?
Ans: Yes, students can access discussion forums for each course to ask questions and interact with instructors or peers for help. Additionally, students can utilize 1-on-1 video chat options with instructors to ask questions.

6. Does MathQuest provide accommodations for students with disabilities?
Ans: Yes, we provide closed-captioning for videos, screen reader compatibility, enhanced fonts/contrast options, alternative input options for quizzes/exams, and the ability to make other necessary accommodations.

7. Is MathQuest accredited? Will course credits transfer to my university?
Ans: MathQuest itself is not an accredited program. However, most courses are designed to align with curriculum standards and prepare students for accredited exams that can earn future college credits at many institutions.

8. Can I interact with the instructor and other students taking the same course? Is there a community component?
Ans: MathQuest courses include community discussion forums where you can interact with peers and instructors taking the course.

Help us improve the project

Please discuss your concerns with Math Quest Team members before creating a new issue.

Please STAR the repository if you like the content and code
Also enable the WATCH button to keep watching the updates on the repository

mathquest's People

Contributors

ris-tlp avatar tharunkumarreddypolu avatar ashwing101 avatar cydni avatar anandverma08 avatar

Watchers

Anand Verma avatar  avatar  avatar

Forkers

reachanandhere

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.