Algowiz is a highly interactive web-based application aimed at spreading the love and knowledge we have for computer science. Initially, it will act as primarily an academic aid to students and teachers alike. It will cover a wide array of topics ranging from sorting and searching algorithms to exploring graphs. The experience will include a separate section for each of the various topics. Each of these sections will have a study guide, a quiz, and a visualizer to help visualize the concepts.
The latest AlgoWiz version is live at aadijain725.github.io/AlgoWiz/
Note: Node and npm is required to run algowiz-app
We need npm to build the app, so that we can run and test it.
This readies the system to be ran and tested by installing all dependencies.
The above command runs the app locally on the users computer.
If it does not load automatically open http://localhost:3000 to view it in the browser.
Other Relevant Scripts
This runs all the test suites available for the app.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Runs the tests and generates coverage reports
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
postgres
(default value) and spring.datasource.password to the one you set up during installation.CREATE DATABASE algowiz;
GRANT ALL PRIVILEGES ON DATABASE "algowiz" TO postgres;
algowiz
, port is 5432
, URL is jdbc:postgresql://localhost:5432/algowiz
, username is postgres
.The current version of our app can handle the events in the following use case. Both the front and backend work perfectly well for this case.
Actors: Jeff is an undergraduate student who is joining as a research assistant over the summer.
Triggers: He will work under the map routing system team and wants to test his knowledge on various graph algorithms before joining.
Preconditions: Jeff has already taken a data structures and algorithms course last quarter. He wants to test his knowledge by taking quizzes on the algorithms.
Postconditions: He is now confident about all the graph algorithms listed on AlgoWiz.
Steps:
Jeff follows the steps listed below in his interaction with the web app.
Jeff visits: https://aadijain725.github.io/AlgoWiz/
Jeff explores the AlgoWiz website and goes to the graph algorithms topic.
Jeff then selects the desired algorithm.
Jeff clicked on the quiz button next to the lesson which takes him to the quiz directly.
He gets an answer wrong, and goes to the lesson page for that subject to learn more about the topic. Then, he aces the quiz.
Extensions:
Visualizer in Lesson Page:
Jeff does not have access to a visualizer to interact and learn more about graphs currently. He does have access to a nice visual GIF. In a future version he will have access to a visualizer.
Other Quiz Pagse:
Currently, Jeff only has a quiz section that has a Dijkstra's quiz. As we expand the backend database, he will have access to more quizes.
Other Use Cases can be found here
The following is a list of the Major Goals we have achieved till now, and also ones that we have to complete.
Lessons - Organize lessons by topic/category (Sorting Algorithms, Graphs, etc. At least one lesson per topic with three topics planned for initial release. Users can visit lessons in any order (there is no locked progession system). Each lesson contains:
Quiz System - Each lesson contains a quiz section to test or review a users understanding of the particular concept. Users recieve feedback on both correct and incorrect answers as each answer is submitted. Correct answers display encouraging visuals while wrong answers provide hints. Users are not required to pass quizzes to procede to other lessons.
Interactive Demo - Each lesson contains at least one visual aid to help illustrate concepts. Interactive Demos have a simple to understand UI that allows the user to procede or review at their own pace.
Interactive Web Platform - All these features will be organized and hosted on a single easy to navigate web based platform designed to be easy to scale and integrate more content and features.
algowiz-app: Frontend code
api: Backend Code
documentation: Living document and Team Policy documentation
layouts: Wireframes, UI mockups, and project planning
status-reports: Weekly status reports
Read our Git Guide if you want to start contributing to the repo but feel lost!