Course EECS 348: Software Engineering I Group 5
- This project is a C++ program designed to parse and evaluate arithmetic expressions.
- It supports numeric constants and operators like +, -, *, /, % and **
- It calculates the desired operation by following PEMDAS, precedence, and associative rules.
- 01_Project_Plan
- 02/08/2026 Meeting Log
- 02/15/2026 Meeting Log
- 02/22/2026 Meeting Log
- 03/01/2026 Meeting Log
- 03/08/2026 Meeting Log
- Arithmetic Expression Evaluator Project Plan and Architecture Guide
- 02_Software_Requirements_Specifications
- 03/29/2026 Meeting Log
- 03_Software_Architecture_Design
This repository follows a clean and logical structure.
/docs- Contains project documentation like our project plan, requirements document, and design document./meetinglogs- Contains meeting recap/log for each meeting held./src- Provides source code for the evaluator. (Later on...)/test- Unit tests, integration tests. (Later on...)/local.config- Contains local configuration related to setup on local machine. (Later on...)/script.build- Contains all scripts related to build process. (Later on...)/dep- Directory where all dependencies are stored. (Later on...)/samples- Code that supports the documentation. (Later on...)/tools- Contains scripts to automate tasks in the project. (Later on...)README.md- Contains project overview and organization of repository.
To keep the history clean and ensure code review happens, developers must not push directly to the main branch. Work should be done on feature/topic branches and merged via pull requests.
-
GitHub Branch Protection (recommended for hosted repositories):
- Go to the repository Settings → Branches → Add rule for
main. - Enable "Require pull request reviews before merging" and disable "Allow push" for everyone except admins.
- Optionally enforce status checks or linear history.
- Go to the repository Settings → Branches → Add rule for
-
Client‑side hook (for local enforcement):
- Copy
tools/prevent_direct_main_push.shinto.git/hooks/pre-pushand make it executable:cp tools/prevent_direct_main_push.sh .git/hooks/pre-push chmod +x .git/hooks/pre-push
- The script will reject any attempt to push
refs/heads/mainto the remote, printing a message.
- Copy
Note: Hooks are not versioned; each contributor must install the hook or use a tooling wrapper such as Husky.
- Alec - Quality Assurance
- Alex - Requirements & Documents Lead
- Jr - Front End Lead Developer
- Lea - Project Manager
- Shashwat - System Architect
- Zack - Back End Lead Developer