Home - Estia-advanced-programming/pandora-public GitHub Wiki
Advanced Programming
This is the wiki for the Estia Advanced Programming class.
Updates
Latest news here: CHANGELOG
Outline
Educational Goals of the Class
- Start and manage a software development project following some Agile project management and Test-Driven-Development principles
- Organize features to be developed
- Set up milestones to reach
- Use of a version control system
Evaluation
You will be automatically evaluated based on
- Group Grade: How many functionalities you have developed:
- Minimum Required: 3 validated milestones, meaning on the
release
branch at least 80% of the the tests for at least three milestones.
- Minimum Required: 3 validated milestones, meaning on the
- Group Grade: Test Driven development:
- Minimum required: On the
release
branch, the filetest/testSuite.json
contains valid tests for at least 3 milestones
- Minimum required: On the
- Group Grade: Number of Successful Release:
- Individual Contribution: You have made a meaningful and
- Minimum required: At least 10% of the commits of your groups, at least 50% of them (excluding Merge commits) follow Conventional Commits
You can check by yourself how many tests your program passed or failed every time you Release commit your current version on GitHub.
A Continuous Integration is set up in your git repository. This means that the tests will check if your new version passes new tests, but also previous ones (to prevent regression). The tests simply consist in a text-based comparison between:
- The output your program generates (e.g. java -jar pandora.jar -o avgAltitude file1.dfr ==> 1234.56) and,
- The output of our program for the same test.
If it is different, someone has an error. Make sure to follow the instructions. If you think our version is having a problem, do not hesitate to open an issue so that we can investigate further.
Pandora - a Flight Data Recorder Analyzer
Pandora is a tool to analyze flight record data to provide summary and high-level information based on low-level sensor data (e.g., fighter jet position).
Project Description
Planes are equipped with Flight Recorder or black box to track many parameters during a flight to help during the investigation of accident. This project aims to emulate a software that would read and extract information from the flight data recorder.
We will in this class take some liberties on how the data are stored and extracted to simplify the process.
Flight Data Records
Records about a flight will be stored in a text file. Specifications can be found here
Flight Analysis
The tool will produce multiple flight analyses depending on the output
option it receives as a Command Line Option. It can:
- Compute and display a single value (e.g., average altitude during the whole flight), as well as multiple values (e.g., a full report)
- Consider a
single file
(e.g., the average altitude of a given flight),several files
(e.g., the average altitude of each flight), andmultiple files
(e.g., the maximum average altitude of a flight among others).
Features to Develop
Features are represented by issues open in your git repository. They are organized according to milestones. A list of features and milestones can be found here
First Steps
- <group action> Copy the Issues corresponding to the Features to implement on your Github repository.
- Clone the project locally on each member computer
- Open the project with your java editor of choice Eclipse or vscode and run the maven build script to compile the bare version of the project (a program that output "[email protected]")
- Read the wiki documentation about
- what is Test-Driven-Development
- What are conventional Commits