Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add centralized frontend README documentation #67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: ReduxAPI_GUI
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
Add centralized frontend README documentation #67
Changes from all commits
a9c114733d332dFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Redux GUI
Redux GUI is a web facing frontend for the Redux Project. Built using React with Next.js server side rendering, it is a highly modern and highly interactive web user interface. Redux uses a mixture of Material Design (MUI) components and react-bootstrap components. From a user perspective, it allows them to enter, modify, reduce, solve, and visualize any problem implemented in Redux.
Redux Frontend (GUI)
Interactive web interface for the Redux computational complexity knowledgebase
Live Demo
Table of Contents
About Redux Frontend
The Redux Frontend is a Next.js-based web application that provides an interactive interface for exploring computational complexity problems, reductions, and visualizations. The frontend is integrally linked to the Redux REST API and depends on the backend being installed and running.
Key Features:
Prerequisites
Before you begin, ensure you have the following installed:
Local Development Setup
Step 1: Clone the Repository
git clone https://github.com/ReduxISU/Redux_GUI.git cd Redux_GUIStep 2: Install Dependencies
Step 3: Ensure Backend is Running
The Redux GUI requires the Redux API to be running. If you need to work on both the frontend and backend simultaneously:
dotnet runhttp://127.0.0.1:27000/Step 4: Start Development Server
Code Overview
The Redux frontend is currently functionally complete. The majority of future additions will be visualizations.
Key Directory Structure
Visualization Files:
components/Visualization/svgs/Visualizations.js- Maps problem names to visualization componentscomponents/Visualization/svgs/ReducedVisualizations.js- Maps reduction names to visualization componentscomponents/Visualization/svgs/- Contains all SVG-generating React componentsPage Components:
components/pageblocks/- Major components that make up the main interfacepages/index.js- Main page that implements all componentsWidgets:
components/widgets/- Reusable React components used throughout the applicationAdding New Components
When adding new features:
components/pageblocks/folder, then implement inpages/index.jscomponents/Visualization/svgs/foldercomponents/widgets/folderAdding to the Codebase
Adding New Visualizations
All visualizations are built on the frontend. Follow these steps to add a new visualization:
1. Create the Visualization Component
Add your visualization to the
components/Visualization/svgs/folder.Requirements:
Example structure:
Current best practice is that these functions take only a URL for an API call, which returns information specific to the visualization. Because each visualization is specialized, the way the SVG is generated is up to the developer working on the problem, although they should follow the style of current visualizations and reuse methods for similar visualizations wherever possible.
2. Follow Best Practices
3. Register the Visualization
Once your visualization is complete, add it to the appropriate map:
For general problem visualizations:
components/Visualization/svgs/Visualizations.jsFor reduction visualizations:
components/Visualization/svgs/ReducedVisualizations.jsExample:
Adding New Major Components
New major page components should be:
components/pageblocks/folderpages/index.jsfileAdding New Widgets
General-purpose React components should be added to the
components/widgets/folder.Deployment
Production Deployment with npm
To deploy the application in production mode:
This will:
Docker Deployment
Alternatively, deploy using Docker:
npm run build docker build -t reduxgui . docker run -it --rm -p 3000:3000 --name reduxgui reduxguiNote: The Docker server uses production binaries, so warnings will be different from the development environment.
Branching Strategy
Production Branch
ReduxAPI_GUIdevelopbranchDevelopment Branch
developWorkflow
developbranch (or create a feature branch fromdevelop)developdevelopintoReduxAPI_GUIfor production deployment** Important:** The person who completes the code review is responsible for completing the pull request.
Definition of Done
New Visualizations
All added visualizations must fulfill the following requirements:
React Component Structure
API Integration
Feature Completeness
Code Integration
Contributors
This project is developed by students and faculty at Idaho State University's Computer Science Department.
For a complete list of contributors, visit our About Us page.
Additional Resources
Documentation
Documentation can be found here
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
Please author any changes or new features that you add to the application, so that we can give credit where credit is due.
Technology Stack
Related Repositories
Getting Help
License
All Rights Reserved
This project is developed at Idaho State University's Computer Science Department.