75 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
********************
 | 
						|
Development Overview
 | 
						|
********************
 | 
						|
 | 
						|
Welcome to the OpenRocket Development Guide! This documentation is designed for developers interested in contributing to OpenRocket.
 | 
						|
 | 
						|
This guide covers the architecture, codebase, and development workflows in detail. To dive deeper into specific topics,
 | 
						|
use the links below to navigate to different sections of this development guide. To learn more about the technical aspects
 | 
						|
of OpenRocket, such as the aerodynamic calculations, refer to the `Technical documentation <https://openrocket.info/documentation.html>`__.
 | 
						|
 | 
						|
Code structure
 | 
						|
==============
 | 
						|
 | 
						|
OpenRocket is a Java application organized using the Java Platform Module System (JPMS) and built with `Gradle <https://gradle.org/>`__.
 | 
						|
The code is organized in the following two packages:
 | 
						|
 | 
						|
- `info.openrocket.core <https://github.com/openrocket/openrocket/tree/unstable/core>`__ - The backend of OpenRocket. \
 | 
						|
  This package contains the classes that represent the rocket and its components, as well as the simulation engine. \
 | 
						|
  The classes in this package are not dependent on any GUI libraries and can be used in other applications.
 | 
						|
 | 
						|
- `info.openrocket.swing <https://github.com/openrocket/openrocket/tree/unstable/swing>`__ - The GUI of OpenRocket. \
 | 
						|
  This package contains the classes that create the user interface. OpenRocket uses the Java Swing library for the GUI.
 | 
						|
 | 
						|
Further Reading
 | 
						|
===============
 | 
						|
 | 
						|
Explore the following sections to learn more about OpenRocket's development:
 | 
						|
 | 
						|
- :doc:`Development Environment Setup </dev_guide/development_setup>`
 | 
						|
  |br_no_pad|
 | 
						|
  *How to set up your development environment to build and run OpenRocket.*
 | 
						|
 | 
						|
- :doc:`OpenRocket Architecture </dev_guide/architecture>`
 | 
						|
  |br_no_pad|
 | 
						|
  *An overview of the high-level code architecture of OpenRocket.*
 | 
						|
 | 
						|
- :doc:`Codebase Walkthrough </dev_guide/codebase_walkthrough>`
 | 
						|
  |br_no_pad|
 | 
						|
  *A detailed guide to the codebase of OpenRocket.*
 | 
						|
 | 
						|
- :doc:`Development Guidelines </dev_guide/development_guidelines>`
 | 
						|
  |br_no_pad|
 | 
						|
  *Guidelines for contributing to OpenRocket.*
 | 
						|
 | 
						|
- :doc:`Testing and Debugging </dev_guide/testing_and_debugging>`
 | 
						|
  |br_no_pad|
 | 
						|
  *How to test and debug the OpenRocket code.*
 | 
						|
 | 
						|
- :doc:`API Documentation </dev_guide/api_documentation>`
 | 
						|
  |br_no_pad|
 | 
						|
  *Documentation for the OpenRocket API.*
 | 
						|
 | 
						|
- :doc:`Building and Releasing </dev_guide/building_releasing>`
 | 
						|
  |br_no_pad|
 | 
						|
  *How to build and release new OpenRocket versions.*
 | 
						|
 | 
						|
- :doc:`Contributing to the Website </dev_guide/contributing_to_the_website>`
 | 
						|
  |br_no_pad|
 | 
						|
  *How to contribute to the* `openrocket.info <https://openrocket.info/>`__ *website.*
 | 
						|
 | 
						|
- :doc:`Contributing to Translations </dev_guide/contributing_to_translations>`
 | 
						|
  |br_no_pad|
 | 
						|
  *How to contribute to translating the OpenRocket UI into different languages.*
 | 
						|
 | 
						|
- :doc:`Contributing to the Documentation </dev_guide/contributing_to_the_docs>`
 | 
						|
  |br_no_pad|
 | 
						|
  *How to contribute to this OpenRocket documentation.*
 | 
						|
 | 
						|
- :doc:`FAQ and Troubleshooting </dev_guide/faq_troubleshooting>`
 | 
						|
  |br_no_pad|
 | 
						|
  *Frequently asked questions and troubleshooting tips for developers.*
 | 
						|
 | 
						|
**We encourage contributions from everyone and hope this guide helps you get started with developing OpenRocket. ❤️**
 | 
						|
 |