# Programming Generalities & Directory Structure

## Programming Generalities

- Development and testing will use a browser and through the **localhost** environment and the existing Apache2 local server.
- Debugging will involve executing `.html` files on different browsers (initially Firefox Developer).
- After development and testing, files will be uploaded to the domain `LEX-OPT.com`.

## General Instructions

GIT will not be used.

Automated testing will not be used (at present) - perhaps later

Version control will be manually implemented by making copies of functioning project implementation phases. 

Minifying of CSS/JS files will not be done until development phases are complete and testing finished.

Security will be limited to verifying data and will only be required during phase 2.
___

## Programming Principles

1. No external libraries will be used.
2. Programming will use **plain vanilla JavaScript** for client-side functionality.
3. **PHP** will be used for data access.
4. Styling will use **SCSS** and **CSS**.
5. Data will be stored in `.JSON` files in the `JSONcache` directory.
6. the term "select" will refer to:
   - on the desktop version - either a single click of the lft button on a mouse or the "enter" key on a keyboard that will activate the selected function, e.g., choose a value from a menu
   - on the small & touch screen versions, select will be a single tap of the finger 

___ 


# Directory Structure (general structure for all projects and parts)

The main directory is `/var/www/html/lex-opt_4.0` and contains the following subdirectories:

1. **CSS**:
   - Contains SCSS files for styling.
   - Partial SCSS files are prefixed with `_` (e.g., `_kern.scss`).
   - The `main.scss` file imports all partials.

2. **documentation**:
   - Contains text files for creating pages:
     - `displayPage.text`
     - `auxiliary.text`
     - `equityPage.text`

3. **Errors**:
   - errors will be document in text format and stored in the Errors directory 
   - files will be name with the date and the extension .txt        

4. **examples**:
   - Contains HTML files for testing functionalities independently.

5. **JS**:
   - Contains all JavaScript files.

6. **JSONcache**:
   - Stores JSON data files:
     - Latest uploads (e.g., `nuData.json`).
     - Archived data (e.g., `APPL.json`).
     - Analytical data (e.g., 200-day moving averages).

7. **PHP**:
   - Contains PHP files for data access.

8. **textFiles**:
   - Stores notes and other useful text files.

---
