JavaFX In Action #26 with Helal Anwar about GradedAttendance to Organize Class Rooms, Students, Teachers, and Lessons
Every week I collect a list of posts, social messages, videos, etc. related to JavaFX on the JFX Central Links Of The Week. One of the regular “appearances” is Helal Anwar, who is building impressive educational tools with JavaFX. In this interview, we discuss his GradedAttendance application and other JavaFX projects he’s working on.
About Helal
Helal Anwar is an undergraduate student, passionate about creating practical solutions for educational environments. His philosophy on programming is clear: “Programming isn’t about what you know; it’s about what you can figure out.” With experience in both teaching and software development, he has identified common challenges in classroom management and built JavaFX-based tools to address them.
He is an active contributor to the JavaFX community, regularly sharing his projects and insights on social media, making him a frequent feature in the JavaFX Links of the Week on JFX Central. Beyond GradedAttendance, he has created several other JavaFX applications including a Quiz App, Calculator, Media Player, and Sliding Puzzle game.
You can find him and his work on:
About GradedAttendance
GradedAttendance is a desktop application built with JavaFX to manage student attendance and classroom activities in educational settings. The application demonstrates several key advantages of using JavaFX for educational tools, making it a perfect solution for teachers and educational institutions.
Why JavaFX for Educational Tools
The choice of JavaFX as the development platform was deliberate and well-justified. Unlike web-based solutions, a desktop application built with JavaFX offers several critical advantages:
- Offline functionality: The app works without an internet connection, which is crucial in educational environments where connectivity might be unreliable.
- Data privacy: All data is processed and stored locally, ensuring student information remains secure and cannot be uploaded to external services.
- Performance: Desktop applications provide better performance and responsiveness compared to web-based alternatives.
- Stability: Java and JavaFX are mature, stable platforms with extensive documentation and examples that remain relevant over time.
Technical Implementation and Design
The application showcases several JavaFX features and best practices. Helal is a big fan of Scene Builder for designing user interfaces, which allows for visual layout design and rapid prototyping. The application takes full advantage of JavaFX’s rendering capabilities to create a polished, professional interface that renders beautifully within the JavaFX framework.
For data storage, GradedAttendance uses SQLite. Despite its name suggesting “light,” SQLite provides a full-featured database that’s perfect for desktop applications, handling all data storage needs efficiently while keeping everything local to the user’s machine.
The Open Source Philosophy
The project is open source, shared with the community not necessarily to gather contributors (though they’re welcome), but primarily to help others who might face similar challenges. Helal’s philosophy is simple: when he couldn’t find a solution to his problem, he created one and shared it so others wouldn’t have to start from scratch.
Learning JavaFX with Modern Tools
An interesting point raised during the interview is the value of JavaFX’s maturity when it comes to learning and problem-solving. Tools like ChatGPT and other AI assistants have been trained on extensive JavaFX documentation and examples accumulated over years. This means that even older examples and tutorials remain relevant and useful for learning JavaFX, making it easier for newcomers to get started. The stability of the platform ensures that knowledge gained years ago is still applicable today.
The State of JavaFX in Education
The interview touched an important issue: many educational institutions still teach older Java GUI frameworks like Swing, despite JavaFX being a more modern and capable alternative. As Helal pointed out, when he was taught Java in college, they were still teaching Swing. His question was simple but important: “Why are you teaching Swing? There’s a better thing available. Why not teach that?” This highlights the need for greater awareness of JavaFX’s capabilities in academic settings.
Looking at the Code
When discussing what he’s most proud of in the codebase, Helal mentioned the integration of various libraries that make the application powerful yet maintainable. The use of AtlantaFX for theming, CalendarFX for scheduling features, and Ikonli for icons creates a modern, professional application. The application also incorporates JLatexMath for rendering mathematical formulas, which is particularly useful in educational contexts, and SQLite JDBC for robust database connectivity.
You can find more information about GradedAttendance on:
Used libraries and other links from the video:
- AtlantaFX: Modern JavaFX theme
- CalendarFX: Calendar and scheduling components
- Ikonli: Icon packs for Java applications
- JLatexMath: LaTeX rendering for Java
- SQLite JDBC: JDBC driver for SQLite
- egui: Immediate mode GUI in Rust library
- Xilem: Experimental Rust native UI framework
- MelodyMatrix: JavaFX application to visualize music
Video content
00:00 Who is Helal
00:57 How GradedAttendance started (thanks to SceneBuilder)
02:29 About GradedAttendance and demo of the application
06:47 Why JavaFX and not a browser application?
07:40 Challenges during development (database)
10:05 Goal of making it as an open-source project
11:25 Other projects Helal worked on
13:04 Learning from books and chat systems
13:45 How GradedAttendance became bigger thanks to MelodyMatrix and AtlantaFX
14:59 Helal wants to see JavaFX more used in programming classes
15:45 Thanks to the many Java library creators!