Skip to content
Tong Lam edited this page May 2, 2024 · 35 revisions

Get Started

Before you begin coding, please carefully read the following pages.

Page List:

General Principles

Frontend

  • Try to AVOID introducing new js libraries.
  • Try to AVOID inline CSS; use an external CSS file instead.
  • Try to AVOID scripts inside the HTML; use an external JS file.
  • Try to REUSE UI COMPONENTS as much as possible; utilise Jinja2 features like extend and macro.
  • Prioritize USING BOOTSTRAP STYLES, especially for positioning and responsiveness.
  • ENSURE THAT EVERY COMPONENT IS RESPONSIVE.
  • REMEMBER we are using Flask Template Rendering NOT Raw HTML.

Backend

  • BEFORE commencing the development of a new function, first CHECK if it has already been implemented by someone else.
  • PRIOR to implementing business logic, ensure to REVIEW the EDR to confirm if the current database schema aligns with your requirements. If adjustments are necessary, modify the schema and conduct a thorough review.
  • STRIVE to maintain a clear separation between routes logic and complex business logic.
  • UTILISE url_for() for navigation purposes throughout the application.
  • ENSURE that every API is thoroughly tested using appropriate testing data.
  • ABSTRACT commonly used functions into a separate utils.py module for improved code organization and reusability.
  • AVOID the use of magic numbers and magic names in your code. Instead, utilise constants and enums for better readability and maintainability.

Architecture

See: https://github.com/tonglam/CITS5505_group-project/wiki/Architecture.

ERD

See: https://github.com/tonglam/CITS5505_group-project/wiki/ERD.

DB Init

See: https://github.com/tonglam/CITS5505_group-project/wiki/DB-Init.

System Design

See: https://github.com/tonglam/CITS5505_group-project/wiki/System-Design.

Component

See: https://github.com/tonglam/CITS5505_group-project/wiki/Component.

Flask

Including topics:

See: https://github.com/tonglam/CITS5505_group-project/wiki/Flask.

Ajax

See: https://github.com/tonglam/CITS5505_group-project/wiki/Ajax.

Test

See: https://github.com/tonglam/CITS5505_group-project/wiki/Test.

CI/CD

We use github action in this project for CI/CD.

See: https://github.com/tonglam/CITS5505_group-project/wiki/CI‐CD-Workflows.

Clone this wiki locally