Assignment due Monday, March 30, 2026 by 11:59pm
Software Engineering Group Project: “EcoCharge Fleet Dashboard
Course: ICS 432 – Software Engineering Context: Electric Vehicle (EV) Technology & Industry Team Size: 3-4 students
- Project Vision & Context
Your team are software engineers at “EcoCharge Innovations.” Your task is to build a prototype for a web-based dashboard that allows managers to monitor a small fleet of electric vehicles.
The goal is to demonstrate core functionality and prove the concept, focusing on clean code, collaboration, and ethical foresight, rather than building a fully-featured product.
- Simplified Project Scope & Core Features
Develop a simple web application with the following two core features:
- Feature A: Static Fleet Overview
- A single web page that displays a list of 5-10 pre-defined electric vehicles.
- For each vehicle, display: Vehicle ID, Model, Current Battery Percentage (a static value between 0-100%), and Status (e.g., “Available”, “Charging”, “On Trip).
- Feature B: Basic Charging Cost Calculator
- A simple form where a user can select a vehicle and input a “charging duration” in hours.
- The application calculates and displays the estimated cost using a fixed formula: Cost = (Charging Duration * 7.5 kW * $0.15 per kWh). (Use these fixed values for simplicity).
- Learning Objectives & Deliverables
Deliverable 1: Project Setup & Collaboration
- Task: Set up a GitLab repository and demonstrate a collaborative workflow.
- Artifacts to Submit:
1. URL to your GitLab repository.2. Evidence of Collaboration: Create at least two feature branches (e.g., feature/fleet-overview, feature/cost-calculator) and merge them via Merge Requests.3. Meaningful Commits: Use clear commit messages (e.g., feat: add basic HTML structure for dashboard, fix: correct calculation formula in calculator).
Deliverable 2: Agile Sprint Execution
Task: Use a simplified Scrum process to manage your 2-week sprint.”
Artifacts to Submit:
1.** A Product Backlog:** A simple list of user stories in a text file or spreadsheet. – Example: “As a manager, I want to see a list of all EVs and their battery levels so I can know which ones are ready to use.”
- A Sprint Plan: A list of tasks for the two features, assigned to team members.
- **A Sprint Retrospective: **A short document (150 words) submitted at the end. What went well? What would you do differently next time?
Deliverable 3: Testing & Code Quality
Task: Write tests for the most critical logic in your application.
Artifacts to Submit:
- Unit Tests: Write tests only for the cost calculation function.
- Test with positive hours.
- Test that it fails gracefully with negative hours or non-numeric input.
- Code Review: Include a comment in your code (e.g., in ) where you describe one potential bug you identified and prevented through code or testing.
Deliverable 4: Security Risk Assessment
Task: Conduct a basic security analysis of your web application.
Artifacts to Submit:
- A Security Memo (200 words): Identify two potential security vulnerabilities relevant to your application. For each, provide:
- The Vulnerability: Name and briefly describe it (e.g., “Cross-Site Scripting (XSS)” or “Insecure Data Handling”).
- Potential Impact: What could an attacker do? (e.g., “Steal user session data,” “Deface the website”).
- Mitigation Strategy: One practical step you would take to fix it (e.g., “Sanitize all user inputs before displaying them,” “Use HTTPS to serve the application).
- Example Vulnerability: “If we connected a real database, storing passwords in plaintext would be a vulnerability. An attacker could steal them. We would mitigate this by always hashing passwords using a strong algorithm like bcrypt.
Deliverable 5: Ethical Considerations
Task: Think proactively about the ethical implications of this technology.
Artifacts to Submit:
- A Short Memo (200 words): Using the ACM Code of Ethics, answer one of the following:
- Privacy: The final product would use real vehicle location data. What is one key privacy concern, and what is one mitigation you would propose?
- Bias: If the “Status” of a vehicle was used to determine driver performance bonuses, how could this simple system be unfair?
**Deliverable 6: **Final Submission & Demo
Artifacts to Submit:
- Source Code in your GitLab main branch.
- A file with instructions on how to run your application.
- A 5-minute screen recording demonstrating the two working features and a brief walkthrough of your GitLab repository showing your merge requests.
Technical Stack Suggestions
-** Frontend** (Recommended): Use simple HTML, CSS, and JavaScript. No complex frameworks are required. This keeps the focus on logic and collaboration, not on learning a new framework.
- Alternative (If confident): A very basic Python Flask or Node.js/Express app to serve the HTML and handle the calculation logic.
- Data: Use a hardcoded JavaScript array or a simple JSON file to store the static fleet data.
Grading Rubric (Summary)
Category | Weight | Simplified Criteria
Collaborative Workflow | 20% | Functional GitLab repo with feature branches and merge requests. Clear commit history.
Agile Process | 15% | Evidence of planning (backlog, task assignments) and reflection (retrospective).
Functionality & Testing | 25% | Both features work correctly. Basic unit tests for the calculator exist and pass.
Security Assessment | 15% | Memo identifies two relevant security risks with clear impacts and plausible mitigations.
Ethical Analysis | 10% | Memo identifies a relevant ethical concern and proposes a plausible mitigation.
Final Demo & Docs 15% | Application runs, demo video is clear, and README provides setup instructions.
Leave a Reply
You must be logged in to post a comment.