Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = "pathview"
project = "PathView"
copyright = "2025, Tasnim Zulfiqar, James Dark, Remi Delaporte-Mathurin"
author = "Tasnim Zulfiqar, James Dark, Remi Delaporte-Mathurin"

Expand All @@ -24,3 +24,37 @@

html_theme = "sphinx_book_theme"
html_static_path = ["_static"]

html_theme_options = {
"repository_url": "https://github.com/festim-dev/PathView",
"use_repository_button": True,
"use_edit_page_button": True,
"repository_branch": "main",
"path_to_docs": "./docs",
"icon_links": [
{
"name": "GitHub Discussions",
"url": "https://github.com/festim-dev/pathview/discussions",
"icon": "fa-solid fa-comments",
},
{
"name": "Slack",
"url": "https://join.slack.com/t/festim-dev/shared_invite/zt-246hw8d6o-htWASLsbdosUo_2nRKCf9g",
"icon": "fa-brands fa-slack",
},
],
"article_header_end": [
"navbar-icon-links",
"article-header-buttons",
],
}

html_sidebars = {
"**": [
"navbar-logo",
"search-button-field",
"sbt-sidebar-nav",
],
}

html_title = "PathView Documentation"
53 changes: 53 additions & 0 deletions docs/contributing.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
===============================
Contributing Guide
===============================

Code of Conduct
----------------

Please read our `Code of Conduct <../CODE_OF_CONDUCT.md>`_.

Contributing Guidelines
-----------------------

**Getting Started**
1. Fork the repository
2. Create a feature branch (``git checkout -b awesome-feature``)
3. Make your changes
4. Add tests for new functionality if needed
5. Ensure all tests pass
6. Submit a pull request

**Development Standards**
- Follow existing code style and conventions
- Write clear, descriptive commit messages
- Include tests for new features
- Update documentation as needed
- Ensure backwards compatibility when possible

**Types of Contributions**
- 🐛 Bug reports and fixes
- ✨ New features and enhancements
- 📚 Documentation improvements
- 🎨 UI/UX improvements
- 🧪 Test coverage improvements

Communication Channels
-----------------------

**GitHub Discussions**
- General questions and help
- Feature requests and ideas
- Community showcases
- Development discussions

**Issues**
- Bug reports
- Specific feature requests
- Documentation issues

**Pull Requests**
- Provide clear description of changes
- Reference related issues
- Include screenshots for UI changes
- Ensure CI checks pass
Binary file added docs/images/global_vars/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/global_vars/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/global_vars/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/global_vars/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/solver_prms/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/step_by_step_guide/6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
231 changes: 23 additions & 208 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,218 +19,33 @@ An interactive visual tool for modeling and simulating nuclear fuel cycle compon
:target: https://nodejs.org/
:alt: Node.js 18+

Overview
========

PathView is a powerful, user-friendly tool designed for modeling and simulating complex systems through an intuitive visual interface. Whether you're working on nuclear fuel cycle analysis, control systems, or general dynamic modeling, PathView provides the tools you need to build, simulate, and analyze your models effectively.

===============================
Installation Guide
===============================

System Requirements
-------------------

Before installing PathView, ensure your system meets the following requirements:

**Required Software:**
- Node.js 18+ and npm
- Python 3.8 or higher
- pip for Python package management
- Git (for development)


Installation Steps
------------------

1. **Clone the Repository**

.. code-block:: bash

git clone https://github.com/festim-dev/pathview.git
cd pathview

2. **Install Frontend Dependencies**

.. code-block:: bash

npm install

3. **Set Up Python Environment**

We recommend using a virtual environment:

.. code-block:: bash

# Create virtual environment
python -m venv venv

# Activate virtual environment
# On Linux/macOS:
source venv/bin/activate

# On Windows:
venv\Scripts\activate

Alternatively, you can use Conda:
.. code-block:: bash

conda create -n pathview python=3.8
conda activate pathview
pip install --upgrade pip
pip install -e .

4. **Install Backend Dependencies**

.. code-block:: bash

pip install -r requirements.txt

5. **Verify Installation**

.. code-block:: bash

# Run both frontend and backend
npm run start:both

The application should be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000

===============================
Example Usage
===============================

Here's a simple example to get you started with PathView:

1. **Start the Application**

After installation, launch PathView:

.. code-block:: bash

npm run start:both

Navigate to http://localhost:5173 in your browser.

2. **Load Example Files**

PathView includes several pre-built example graphs in the `example_graphs/ <https://github.com/festim-dev/pathview/tree/main/example_graphs>`_ directory that demonstrate different functionality:

- ``harmonic_oscillator.json`` - Simple oscillator simulation
- ``pid.json`` - PID controller example
- ``festim_two_walls.json`` - Two-wall diffusion model
- ``linear_feedback.json`` - Linear feedback system
- ``spectrum.json`` - Spectral analysis example

To load an example:

- Use the file import functionality in the application
- Select any ``.json`` file from the ``example_graphs/`` directory
- The graph will load with pre-configured nodes and connections
- Click the Run button to run the example

3. **Create Your Own Graphs**

- Drag and drop nodes from the sidebar
- Connect nodes by dragging from output handles to input handles
- Configure node parameters in the properties panel
- Use the simulation controls to run your model


===============================
Roadmap
===============================

**Core Functionality & Solvers**
- Support more PathSim solvers
- User-defined block class (ie. users writing their own Python classes for blocks)
- Support for user plugins (eg. Chem.Eng., fuel cycle blocks, thermodynamic models, etc.)

**Graph Management & Import/Export**
- Export graph as Subsystem and load it back

**User Interface & Experience**
- Improved UI/UX
- Capability to rotate/flip nodes
- Enhanced visualization options
- More styling options for nodes and edges

**Documentation & Examples**
- More example scenarios
- Annotations and comments on graph

===============================
Community Guidelines
===============================

Code of Conduct
----------------

Please read our `Code of Conduct <../CODE_OF_CONDUCT.md>`_.

Contributing Guidelines
-----------------------

**Getting Started**
1. Fork the repository
2. Create a feature branch (``git checkout -b awesome-feature``)
3. Make your changes
4. Add tests for new functionality if needed
5. Ensure all tests pass
6. Submit a pull request

**Development Standards**
- Follow existing code style and conventions
- Write clear, descriptive commit messages
- Include tests for new features
- Update documentation as needed
- Ensure backwards compatibility when possible

**Types of Contributions**
- 🐛 Bug reports and fixes
- ✨ New features and enhancements
- 📚 Documentation improvements
- 🎨 UI/UX improvements
- 🧪 Test coverage improvements

Communication Channels
-----------------------

**GitHub Discussions**
Use GitHub Discussions for:
- General questions and help
- Feature requests and ideas
- Community showcases
- Development discussions

**Issues**
Use GitHub Issues for:
- Bug reports
- Specific feature requests
- Documentation issues

**Pull Requests**
- Provide clear description of changes
- Reference related issues
- Include screenshots for UI changes
- Ensure CI checks pass


===============================
Support
===============================

If you need help with PathView, here are the best ways to get support:
**Key Features:**

- **Documentation**: Start with this documentation
- **GitHub Issues**: For bugs and feature requests
- **Discussions**: For questions and community help
- **Email**: remidm@mit.edu
- **Visual Node-Based Interface**: Drag-and-drop nodes to build complex models
- **Real-Time Simulation**: Execute simulations and see results immediately
.. - **Extensible Architecture**: Support for custom nodes and plugins
- **Multiple Solvers**: Various numerical methods for different problem types
- **Import/Export Capabilities**: Save and share your models easily
- **Cross-Platform**: Runs on Windows, macOS, and Linux

===============================
Quick Start
===========

Indices and tables
==================
1. **Install PathView** following our :doc:`installation guide <installation>`
2. **Try the examples** in the :doc:`usage guide <usage>`
3. **Build your first model** with our step-by-step tutorials

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. toctree::
:maxdepth: 2
:hidden:

installation
usage
contributing
roadmap
support
Loading
Loading