As a user, I can:
- I can see all available flights from a city to a city.
- I can purchase one or more tickets on a flight.
- I can check in for my flight.
- I can cancel my ticket.
As an administrator, I can:
- I can schedule a new flight.
- I can cancel a flight.
- I can view a flight manifest (flight details + passenger list)
- As an administrator, I can cancel a ticket on any flight.
- As an pilot, I can initiate takeoff of a flight. (No more new tickets or cancellations)
- Java 8
- JavaScript
- HTML & CSS
- Apache Maven for dependencies and project management
- Git & Github for version control
- MariaDB deployed on AWS RDS for data persistence
- Hibernate to abstract away JDBC code
- AWS EC2, ElasticBeanstalk, S3, CodeBuild, CodePipeline
- Proper use of OOP principles
- Output is presented to user on a web page, and input is accepted from a web form
- Webapp(backend) and UI(frontend) are served from AWS and are publically available
- CRUD operations are supported for one or more domain objects via the web application's API endpoints and invoked from the frontend
- Communication is done with JSON in HTTP request and response bodies.
- Abstract all JDBC away with Hibernate
- Documentation (all classes and methods have adequate Javadoc comments)
- All Exceptions are caught and logged to a file
- 80%+ Unit test line coverage for service-layer methods(Test as much as possible, ask trainer if unsure)
- DevOps CI/CD pipeline to build and deploy project
- Advanced UI Framework (Angular or React)