/ntu-sc2006-notes

NTU SC2006 Software Engineering Notes

Primary LanguageMakefileMIT LicenseMIT

NTU SC2006 Software Engineering Notes

Notes on NTU's SC2006 Software Engineering module:

Project Structure

docs/
    index.md          # Note index.
    topic/
        concept.md    # Notes for a topic.
        subtopic/
            concept.md  # Notes for a subtopic.

Contributing

Contributions are welcome! Follow these steps to add or update notes:

Quickstart

  1. Clone the repository:

    git clone https://github.com/mrzzy/ntu-sc2006-notes.git
    cd ntu-sc2006-notes
  2. Install dependencies:

    pip install -r requirements.txt
  3. Start the local server:

    mkdocs serve
  4. Preview the notes at http://127.0.0.1:8000/.

  5. Generate the site and export a PDF:

    mkdocs build

    The generated PDF is located at site/pdf/document.pdf.

Add a New Note

  1. Create a Markdown File:

    • Place your file under the relevant folder in docs/.
    • Add a title field in the YAML metadata at the top of the file.
      Example:
      ---
      title: Singleton Pattern
      ---
  2. Organize by Folder:

    • Group related topics and subtopics:
      docs/
          design-patterns/
              singleton.md
              observer.md
      
  3. Run Formatting and Spelling Checks:

    • Format Markdown files using mdformat:
      mdformat .
    • Check for and fix common spelling errors using codespell:
      codespell
  4. Preview Locally:

    • Run mkdocs serve to ensure everything looks correct.

      Disable PDF Output (Optional): If working on content unrelated to PDF generation, disable the PDF plugin by commenting it out in mkdocs.yml to speed things up:

      # - with-pdf:
      #     cover_subtitle: NTU SC2006 Software Engineering Notes
      #     copyright: "© SC2006 Docs Team"
  5. Submit a Pull Request:

    • Commit and push changes:
      git checkout -b add-notes
      git commit -am "Add notes on Singleton Pattern"
      git push origin add-notes
    • Open a pull request and describe your changes.

License

See the LICENSE file for details.