1. Task
Write a Safe System in Rust! My idea is a create a game like sudoku. Using some kind of interface? maybe using a GUI interface?
2. Deliverables
Documentation outlining your system.
Code base
Video demonstration of your system, doesn’t need any voice.
4. Topics
Game development using https://macroquad.rs/ or https://bevyengine.org/. There is more about the state of Rust gamedev libraries at https://arewegameyet.rs/.
Front-end web development that creates websites by compiling Rust to Webassembly, which is then run in the browser (so your Rust code runs in the browser instead of JavaScript!) using https://yew.rs/ or https://seed-rs.org/.
Back-end web development using https://rocket.rs/ or one of the many other web server frameworks out there for Rust; I would suggest using a synchronous rather than async framework (so not Actix) unless you are really motivated!
GUI development using https://github.com/emilk/egui for an immediate-mode GUI (this is comparable to Dear ImGui for C++ if you know that) or perhaps https://github.com/iced-rs/iced or https://relm4.org/. See https://crumblingstatue.github.io/hexerator-book/ as an example of a program using egui.
TUI (text user interface) development using https://github.com/Gyscos/Cursive or https://github.com/fdehau/tui-rs.
Command-line applications that do not have a TUI: don’t really need anything beyond parsing command-line arguments (and https://kbknapp.github.io/clap-rs/clap/index.html is great for that).
With the exception of game development, those are more about user interfaces to a program/system rather than saying what the program/system does. That is still up to you. For example, it could be:
a custom application to process files (ROM sorter, photo manager, etc.)
a simple emulator for an old system (or for WebAssembly for that matter)
a distributed system, e.g., something with cloud services, chat, a bot for Matrix, Discord, etc.
for more ideas, browse https://github.com/rust-unofficial/awesome-rust
You will need to strike a balance between user interface and application domain. For example, if you focus more on application domain, e.g., a distributed system or files/processes, then you will not have time to write a complex user interface. On the other hand, if you have a simple application domain, then spend more time on the user interface.
5. Goals and Constraints
Learning more about APIs using ownership, borrowing, generics, and traits is encouraged.
So it is encouraged to use existing crates to:see more examples of (hopefully) well-designed APIs and to find out how usable they are
allow you to achieve more
You must write your own code, but you can use external crates and you are encouraged to discuss your project with other students in the class and provide mutual suppocrt

For This or a Similar Paper Click Here To Order Now