Skip to content

The elegant & optimized checklist solution for flight simulation. Built with React.

Notifications You must be signed in to change notification settings

ToothlessOS/SimChecklists

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SimChecklists / 愛乃ちゃん's EFB Project

The elegant & optimized checklist solution for flight simulation. Built with React.

-> Official Deployment <-

Sample

Setup

  1. Clone the repository:

    git clone https://github.com/ToothlessOS/SimChecklists.git
    cd SimChecklists/SimChecklists # Where the project.json file is located
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

Contributing

You can easily contribute more checklists to the project with the following steps:

  1. Create a new AircraftNameChecklist.ts file in the src/checklists directory. The file should look like this:
import { Checklist } from "../types/checklist";
const C172Checklist: ChecklistData = {
    ...
};
export default C172Checklist;

where ChecklistData should be structured as follows (You may also refer to C172Checklist.ts as an example):

(TIPS: Consider using a LLM to generate the checklist data structure from existing checklist documents!)

export type CheckItem = {
  id: string;
  action: string; // Action to perform
  expected: string; // Expected state
  note?: string; // Additional note for the checklist item; Displayed in smaller font under the item
  section?: string;
  highlight?: boolean; // Display the item red
};

export type CheckNote = {
  id: string;
  description: string; // Note description
  section?: string;
  subsection?: string;
  highlight?: boolean; // Display the note in red
};

export type CheckContent = (CheckItem | CheckNote)[]; // Two types of entries are available: Item and Note

export type ChecklistData = Record<
  string,
  { content: CheckContent; color: string }
>; // KEY: Checklist Section Name; VALUE: {content: CheckContent, color: string (tailwind css color class, i.e. bg-green-500)}
  1. Add your checklist page in src/pages/AircraftName.tsx, and add it to React Router in src/App.tsx:
// AircraftName.tsx
import "bootstrap/dist/css/bootstrap.min.css";
import type { ReactNode } from "react";
import NavbarComp from "../components/NavbarComp";
import Checklist from "../components/Checklist";
import type { ChecklistData } from "../components/types";
import AircraftNameChecklist from "../checklists/AircraftNameChecklist.ts";
import entriesAvail from "../checklists/available";
import NavFloat from "../components/NavFloat";

function AircraftIdentifier(): ReactNode {
  const content = Checklist as ChecklistData;

  return (
    <>
      <NavbarComp entries={entriesAvail} />
      <br />
      <h1 className="text-xl font-bold text-center">The title of the checklist</h1>
      <NavFloat content={content} />
      <div>
        <Checklist content={content} />
      </div>
    </>
  );
}

export default AircraftIdentifier;
// App.tsx
import AircraftNameChecklist from "./checklists/AircraftNameChecklist";

...

function App() {
  return (
    // Handling frontend routing with React Router
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/ref" element={<References />} />
      <Route path="/C172" element={<C172 />} />
      <Route path="/AircraftName" element={<AircraftNameChecklist />} />
      ...
    </Routes>
  );
}
...
  1. Add the link to you checklist page to ./checklists/available.ts to render it on the navigation bar:
const entriesAvail = {
    C172: "/C172",
    AircraftName: "/AircraftName",
    ...
};
  1. To uphold academic integrity, please add source of checklist in ./checklists/bib.ts:
const bib = {
    "C172": "https://eastcoastaeroclub.com/wp-content/uploads/2025/08/C172S-Skyhawk-Checklist_04-August-2025.pdf"
    "AircraftName": "SOURCE_URL_HERE",
    ...
}
  1. Commit and push your changes. Create a pull request to the main repository for review.

  2. After approval, your checklist will be merged into the main project and deployed to the official site with CI/CD pipelines!

About

The elegant & optimized checklist solution for flight simulation. Built with React.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages