moest-np / center-randomize

Script is to assign exam centers to students
MIT License
754 stars 359 forks source link

Title: Improve Project Structure and Architectural Pattern for Maintainability #36

Open nixhantb opened 4 months ago

nixhantb commented 4 months ago

Folder Structure Enhancement:

  1. Create a structured folder hierarchy, separating input/output data & source code
  2. Organize input/output data files in a dedicated data/ directory, with subdirectories for input and output files.
  3. Move source code files into a src/ directory, with further categorization into modules for future maintainability
  4. Add tests folder for the unit testing the code.

Architectural Pattern Adoption:

  1. Define modules representing the Model (data/business logic), View (presentation layer), and Controller (intermediary logic) components.
  2. Ensure clear communication and interaction between different components to facilitate maintainability and scalability.
ashiishme commented 4 months ago

Agreed. You can also come up with a plan and then create multiple issues that can be used to track the progress.

For example, come up with a standard project structure and someone can take it as reference ( including you ).

Also, for the Architectural pattern, a monolith structure with MVC pattern seems reasonable.

LuluW8071 commented 4 months ago

Modularization

I think it's time to modularize the code, separating the script into individual scripts for functions. Its tedious navigate through >300 lines of codes and debug.

shirshakmaskey commented 4 months ago

I would recommend node/express. this can serve as a backend for many moest applications. Please let me know if the author is okay with this.