Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@ashirrwad
Last active August 23, 2023 16:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ashirrwad/ea7eb6f289b6b651d362916721842370 to your computer and use it in GitHub Desktop.
Save ashirrwad/ea7eb6f289b6b651d362916721842370 to your computer and use it in GitHub Desktop.
GSoC 2021 Final Report

gsoc

x

GSoC 2021: Final Report

Organisation: Fortran-lang

Project: Build an online playground for fortran-lang.org

Contributor : Ashirwad Mishra

Mentors: Milan Curcic, Brad Richardson

Building a playground for Fortran-lang

The project aimed to build a playground for Modern Fortran which enables users to run their code online. It will be offered as an extension to the official fortran-lang website where users can experiment with their code and play around with supported libraries. The playground also offers an interactive tutorial for Fortran newcomers, giving them an overview of the language syntax and features.

You can check it out on my Github pages until it's deployed officially on play.fortran-lang.org. Check out the repository at Fortran-lang Github.

Technical Overview

The playground consists of a frontend built using React which communicates with a Flask App responsible for executing user codes in a sandboxed environment using a Docker Container.

Fortran Playground (2)

Merged PRs

Open PRs

  • #37 Contribution Guide
    • Added Contribution guide for future contributors, documented the frontend and backend code for easy understanding.

Challenges Faced

  • Configuring Docker Desktop seemed to be a challenge on windows as the docker engine kept breaking on my system even after multiple reinstalls, which happened due to bad configuration I later fixed.
  • I had never used FPM and understanding how to integrate it with the playground seemed like a major challenge. Thankfully, Brad Richardson's video about FPM Anatomy, helped me understand it's structure and I incorporated it to support libraries on the playground.
  • Figuring out aesthetics versus functionality in UI Design for the playground is an ongoing challenge and will be improved with further user feedback.

I would like to thank my mentors Brad Richardson and Milan Curcic for assiting me throughout the process and teaching me better development practices. I'd also like to thank Arjen Markus for his constant feedback on the project and teaching me the nuances of Fortran, also the rich community at Discourse for their feedback and their plethora of Fortran resources.

Future Work

Following are some features that can enhance the user experience on the playground

  • Better curriculum - The current tutorial is derived from the quickstart guide which while being robust can be altered to cater to extreme beginners.
  • More libraries - Adding libraries has been simplified by FPM integration, with community feedback more libraries should be added for experimentation maybe even options for custom libraries.
  • Editor configuration - Ace editor offers various configuration options that can cater to every Fortran enthusiast out there. Features can be implemented for this.

I plan on contributing further after the GSoC period to Fortran-lang to work on above stated issues and various other projects such as FPM, the new fortran-lang.org website and many more.

@everythingfunctional
Copy link

Great work @ashirrwad . It was great working with you and I hope you continue working with us on this in the future.

@rajkumardongre
Copy link

Really Amazing Work 💯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment