Coder Social home page Coder Social logo

moneybags's Introduction

Moneybags ๐Ÿ’ฐ

Build Environment Setup

Moneybags development is done in VS Code using the Java Extension Pack. It targets JDK 21 (Latest LTS at the time of writing).

As development will be primarily done on Windows, the following instructions are written with Windows in mind.

Moneybags uses the Gradle build system.

Getting the JDK

To install the JDK (OpenJDK 21, specifically), the simplest way (imo) is to use Scoop.

Note: Please remove any older or different versions of Java already installed to prevent VS Code from getting confused

  1. Install Scoop Package Manager if you don't have it already:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
  2. Set up Scoop by installing Git and adding the Java bucket (buckets are just repositories):

    scoop bucket install git
    scoop bucket add java
  3. Install OpenJDK 21:

    scoop install openjdk21
  4. Set the JAVA_HOME user environment variable to the installation directory C:\Users\<your-username>\scoop\apps\openjdk21\current

    One of the benefits of using Scoop is that the current directory is symlinked, so if you update JDK 21, you won't need to update your JAVA_HOME variable.

  5. Install WiX Toolset from here - required for creating native executables.

  6. Add the WiX Toolset bins to your user Path: C:\Program Files (x86)\WiX Toolset v3.14\bin

Getting JavaFX

  1. Download OpenJFX 21 from here.
  2. Install it somewhere sensible on your machine, it doesn't really matter where because we refer to the OPENJFX_HOME environment variable within the project.
  3. Set the OPENJFX_HOME user environment variable to the directory where you've installed JavaFX.

Configuring VS Code

  1. Install VS Code
  2. Install the Java Extension Pack

Common Practices within VS Code

  • Interact with files using the Java Projects section in the sidebar rather than with the directory explorer, it allows for easy package and class creation.

Building with Gradle

To build the project with Gradle, run ./gradlew build

To distribute, run ./gradlew dist - This will create a self-contained executable in the app/bin/dist directory.

Further Reading

CONTRIBUTING

STYLE

moneybags's People

Contributors

chris-a13 avatar soda3x avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

chris-a13

moneybags's Issues

macOS version

Support macOS.
The Java rewrite should be written to be portable so that the macOS operating system is supported.

Java w/ JavaFX rewrite

Currently MetroFramework is used but this has caused a variety of issues such as the Windows close, minimise and maximise buttons appearing as โ€œ1 2 rโ€.
I will attach a screenshot.

"Unhandled exception - Input string was not in correct format" while saving and using persona

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)
   at System.Convert.ToInt64(String value)
   at Moneybags.PersonaCreator.CreatePersona(String filePath) in C:\Users\bnewm\Documents\GitHub\Moneybags\Moneybags\PersonaCreator.cs:line 19
   at Moneybags.PersonaCreator.SaveAndUsePersonaBtn_Click(Object sender, EventArgs e) in C:\Users\bnewm\Documents\GitHub\Moneybags\Moneybags\PersonaCreator.cs:line 63
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at MetroFramework.Controls.MetroButton.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Moneybags
    Assembly Version: 0.3.0.0
    Win32 Version: 0.3.0.0
    CodeBase: file:///C:/Users/Tash/AppData/Local/Moneybags/Moneybags.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
MetroFramework
    Assembly Version: 1.2.0.3
    Win32 Version: 1.2.0.3
    CodeBase: file:///C:/Users/Tash/AppData/Local/Moneybags/MetroFramework.DLL
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
MetroFramework.Fonts
    Assembly Version: 1.2.0.3
    Win32 Version: 1.2.0.3
    CodeBase: file:///C:/Users/Tash/AppData/Local/Moneybags/MetroFramework.Fonts.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


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.