based heavily on this project
This tool is a general purpose spaced repetition learning tool, meant for helping users attempt to do better at leet code style interview questions. Using repetition as a guide to enhance learning, this tool allows users to easily track and update their progress.
Note
This project currently uses rustc 1.91.1
To check your rust version run:
rustc --version
if you do not have rust installed on your machine, visit the following link
To update to a stable version run:
rustup update
To run this applicaton use the following:
cargo run
We use sqlite to store all data locally, so nothing ever leaves your device.
Furthermore we use rusqlite as our library for storing data.
If you wish to add functionality, look below as an example from add_problem_screen.rs
fn insert_new_problem(
db: &Arc<rusqlite::Connection>,
problem_name: &String,
problem_rating: &String,
entry_date: &String,
) -> rusqlite::Result<bool> {
// Changed return type
let table_name = "user_problems";
// Ensure table exists
if !check_table(db, table_name).unwrap() {
create_table(db)?;
}
// Check if row exists
if !check_row_exists(db, problem_name).unwrap() {
let problem = Problem {
name: problem_name.to_string(),
rating: problem_rating.to_string(),
entry_date: entry_date.to_string(),
};
db.execute(
"INSERT INTO user_problems (problem_name, problem_rating, entry_date) VALUES (?1, ?2, ?3)",
(&problem.name, &problem.rating, &problem.entry_date),
)?;
return Ok(true); // Signifies a new row was added
}
Ok(false) // Signifies nothing was added, but no error occurred
}Leveraging ratatui to create stunning visuals, with minimal latency.
- Add delete capabilities in view screen
- Add usage graph & screen
- Clean up code and test
This is an open sourced project, so feel free to contribute, and leave feedback!