The original pdf file can be found here
Vision Document - Image Application
Team 14
Revision History
Date | Version | Description | Author |
---|---|---|---|
27.02 | 1.0 | ||
11.03 | 2.0 | Updated after feedback from Alexander Holt |
Content:
1 Introduction
This is a document by group 14, first year computer engineering students at NTNU. The document outlines our vision for the spring project in IDATT1002 2020.
1.1 Purpose
The purpose of this document are to collect, analyze and define high-level needs and features of the project.
1.2 Scope
The scope of this document is limited to requirements and information given in the project task folder.
1.4 References
Visjonsdokument pedagogisk spill for læring av HTML5 og CSS, _Tesdal N_, 09.12.2014
1.5 Overview
Our task was to create an image application that could store metadata in images. This task was appointed to computer science, first year students.
One of key points was to connect to the university's own database and the using of MySQL and ORM techniques from tuition in class.
A consulting company has been commissioned to make a new full-fledged information system. Our job is to design an implement an image application that can store images. Each team member has approximately 150 hours at disposal.
2 Positioning
2.1 Business opportunity
In the current market there is a huge demand for image applications, as proved by the popularity of the likes of Instagram and Vsco. However there seems to be a lack of image applications catered to professional- and semi professional photographers for other purposes other than video sharing. There is a demand for a great imaging program, with high-end powerful functionality for image storage, sorting based on metadata and album creation. We hope to fill this void with our imaging application.
2.2 Problem statement
A team of software developing consultants have been summoned to create an imaging application for image storing, metadata viewing and sorting as well as album creation. Each team member has 150 hours at their disposal, to plan, develop and document the entire project.
2.3 Product position statement
For | A computer consulting company |
---|---|
Who | has been commissioned to create a brand new information system. |
The image application | Is a standalone Java application |
That | lets the user upload, sort, search and display images. |
Unlike | regular image apps |
Our product | also reads image metadata. |
3 Project goals
3.1 Efficiency goals
The purpose of this project is to make more trustworthy and user friendly product than competitors. By having additional features, such as reading image metadata, the product will also become more attractive.
3.2 Result goals
For this project our goal is to make an image application that can store data from images. Also the app should let the user both search through the images with the data, as well as the ability to make image albumes for personal usage. The albumes can be created automatically or interactively by the users.
3.3 Process goals
For the process our goal is to build a strong sense of team spirit and a great partnership. We will establish this through mutual communication and everyone contributing to the project.
When the project is finished, hopefully, the result reflects all of the team members own work. We will accomplish a measurable result through common working sessions. In group meetings we will evaluate our progress, and adjust our target areas accordingly.
4 Stakeholders and user descriptions
4.1 Market demographics
The final product of this project will not be used for commercial purposes, however it will serve a purpose and be a great alternative for both professional and hobby photography enthusiasts. It will serve as an efficient tool for image storage and access, with more in depth features in regards to photography than other alternative imaging software.
While it will provide no financial gain, we hope for our product to be a testament to our groups skill and capability in regards to software engineering and design.
Our target demographic will be that of professional and amature photographers, and we hope to reach them through superior efficiency and functionality in our program.
4.2 Stakeholder summary
Name | Description | Role | Represented by |
---|---|---|---|
Student | Student at faculty of | Designs and |
| | information technology and electrical engineering | implements the system | | | Studass | Student at faculty of information technology and electrical engineering. Employed to help the teacher guide students | Two team meetings with the team, guides the students through the process | Teacher | | Teacher | Employed at faculty of information technology and electrical engineering. Responsible for accepting the project | Contributes to choices taken during development. | |
4.3 User summary
Name | Description | Role |
---|---|---|
Professional photographer | User with a background in photography. | Uses many or most of the features |
Amature photgrapher | User with some background in photography | Uses some of the features |
4.4 User environment
There are six students, one student assistant and three teachers involved in completing the project. Each student has 150 hours at disposal.
The application is downloaded on the client's computer, but will require internet connection.
4.5 Stakeholder profile
4.5.1 Student Assistant
Representative | Zaim Imran |
---|---|
Description | Student at the faculty, with excellent competence of system |
| | development, employed to guide and supervise the students through the project. Being part of meetings throughout the whole process. | | Type | 2. year student at Computer Engineering at NTNU. Employed by the Faculty of Computer Engineering and Informatics. | | Responsibilities | Guidance and feedback to us students during the project, beings a part of team meetings. | | Success Criteria | Success is having the students achieve their goals for the subject, and meeting the requirements of the project and subject as a whole. | | Involvements | Supervision through meetings and dedicated time with student assistants. | | Deliverables | Requires frequent updates to adequately assess our progress and give feedback. | | Comments /Issues | No interferences at this moment in time. |
4.5.2 Teacher
Representative | Grethe Sandstrak |
---|---|
Description | Represents the school and is the supervisor of all students in this subject. |
Type | Cand. Science of Informatics, NTNU. Program supervisor Computer Engineering NTNU. Employed at faculty of information technology and electrical engineering. |
Responsibilities | Guidance and feedback during team-meetings, to ensure we conduct a sufficient project. |
Success Criteria | Success is having her students meet the project criteria, and pass the subject with adequate experience and knowledge of the system development process. |
Involvements | Supervision through team-meetings. Has the final word in conflicts, as responsible for the subject. |
Deliverables | Requires sporadic update regarding the products development and the team working process and progress. |
Comments /Issues | No interferences at this moment in time. |
4.5.3 Students
Representative | Team 14 |
---|---|
Description | The group of students in charge of development of the product and process of making the product. |
Type | First year students at Computer Engineering at NTNU. |
Responsibilities | Developing a sufficiently imaging application in the given amount of time. Creating a good project process with the desirable working environment. Documentation of the product and process. Passing the subject. |
Success Criteria | Creating a great application and learning and experiencing the work related to system engineering. Obtaining sufficient skill and knowledge as to achieve top marks in the subject. |
Involvements | Plans the project, develops the product and documents the process. |
Deliverables | No deliverables at this moment in time. |
Comments /Issues | No interferences at this moment in time. |
4.6 User profiles
4.6.1 Professional Photographer
Representative | Professional photographer |
---|---|
Description | Uses the application professionally, and needs all or most of the functionality of the program. |
Type | Professional photographer with an experienced background in photography and imaging |
Responsibilities | Core market group. Uses all or most of the functionality. |
Success Criteria | A powerful and intuitive imaging application with all necessary functionality for image storage, sorting and information gathering, with great album creation capabilities. |
Involvements | User tests all of the functionality of the program, and its capabilities. |
Deliverables | No deliverables at this moment in time. |
Comments /Issues | No interferences at this moment in time. |
4.6.2 Casual User/Amature Photographer
Representative | Casual user/Amature photographer |
---|---|
Description | Uses the application casually and uses several of the features and functionality. |
Type | Casual user with at least some background with photography. |
Responsibilities | The majority of the market, who uses a lot of the feature of the program. |
Success Criteria | An intuitive and easy to use application with core functionality to rival other casual photography applications, with additional features to separate from said applications. |
Involvements | Tests the core functionality and usability of the application.. |
Deliverables | No deliverables at this moment in time. |
Comments /Issues | No interferences at this moment in time. |
4.7 Alternatives and competition
4.7.1 Imageupload.net
Pros; Easy use, a huge library of other user uploaded pictures
Cons; Lacks metadata functionality, no good filtration method of poor images.
4.7.2 Instagram.com
Pros; Core functionality is solid and heavily tested, occupies a majority of the market, a huge library of other user uploaded pictures
Cons; Is a social medium first and foremost, and does in consequence not cater to professional personal use as a storage application.
5. Product overview
5.1 Product perspective
The application is a self-contained and totally independent product. Our app is going to run locally. The database on the other hand is not local.
5.2 Summary of capabilities
Feature | Benefit | Priority |
---|---|---|
Automatically generate albums | The user can make an album much faster and without any prerequisites in imaging | High |
Interactively make albums | The user can make an album with a more personal touch | High |
Store metadata | Easy to find out where the image was taken and with which camera options | High |
Adding tags | Easier to categorize and find images | High |
The application stores a path to your uploaded image | Easier to keep control of your photos on the computer | High |
Map navigation | Ability to view photos and add photos to an album through its location on a map | Medium/High |
User login | Can create accounts and separate the contents of each unique account | Medium |
5.3 Assumptions and dependencies
The university's database:
- Relies on a stable connection
- Too much traffic and treads tends to make the system run slow
- Without a database we will need to store the data on the users own computer
5.4 Risk analysis
-
University's database shuts down / can not establish a connection to it: The whole app has to be redesigned.
-
Runs out of time (150 h per person)
The planning has not been good enough. Product will not be completely finished.
- Difficulties in obtaining sufficient expertise
Learning new softwares and languages takes away valuable time from programming the application.
- Usage of newest, and not fully tested softwares
Teacher and studass has less experience and can not help as much. Might be bugs in the software.
- Leaked information from the database
Since the database only stores a path to the image rather than the image itself this is not a very extensive issue. Even though, the users privacy is very important for our reputation.
5.4 Estimated costs
With 6 workers with an hourly wage of 1470 kr/h, all estimated to work 150 hours +/- 10%, the total development cost is estimated at 1 190 700 - 1 455 300kr.Estimated at 1 323 000kr.
5.5 Compare costs and benefits
Since the application is not meant be used for non-commercial usage, it comes to whether its is worth 1.3 million NOK for an student made image application. A lot of online options, such as imageupload.net, is free to use. Therefore, you could argue that our option isn't the one that brings the best value for the money.
6 Product features
The following our the application features we wish to implement. These are not final, and there may or may not be changes throughout the development process.
Login
- The user creates an account with a password, which later can be used to log into the application. Image Upload
- A user may upload one or more images to the database, with the associated metadata. Tags may also be added to the images. Explore Images
- A page to explore images in an intuitive matter, where you can click on the picture you like (thumbnail), and view the detailed information about said picture. This includes the metadata and tags associated with the image. Create Album
- The user may create an album consisting of one or more image. The album should have a title and may also have its own tags. View Albums
- The user should be able to browse through his or her album. By clicking the album the user should be taken to a page that can displays the albums content.
Search Images
- An option to search through albums and images by their title, tags or user. The search should take them to a page where the search results are displayed. Create PDF Album
- From the album page, the user can generate and download a PDF consisting of the album he or she pleases, with the contents associated with said album. Map View
- A map window displaying the image thumbnail. It's position on the map based on the geolocation stored in the database.
7 Constraints
Time and resources constrains us from making this an application equivalent to the likes of Instagram and Imageupload.net where you are able to browse through a huge library of uploaded photos from other users.
8. Other product requirements
8.1 System requirements
The product fulfills the requirements defined by the the consulting company;
1.The application must be made as a standalone Java application.
2.Use the MySQL database at the university and use ORM technology the way it has been taught on the programming course.
3.Use a connection pool with one connection (or more if you have multiple threads). This is to improve performance and avoid using too many database connections. Find theory and examples of this online.
4.Test at least all the classes that read image metadata with Junit.
8.2 Non-Functionality Related Criteria
The product and development process also has certain criteria that needs to be followed;
The development process will be conducted through three iterations
- Planning: In this stage we make a Wireframe prototype, as well as a Vision Document, Domain Model, Gantt Diagram and Wireframe user tests.
- MVP: In this stage we need to make a Minimal Viable Product, as well as finish the WIKI documents.
- Finalize: In this stage the finishing touches should be made for the project, along with the final documentation. This includes the final report, as well as diagram and a presentation that will be shown to the teachers.
The application need to conform with the principles of Universal design, WCAG 2.1 In addition Don Norman's design principles should be taken into consideration.
The final report should include what collaboration tools were used, an evaluation of the teamwork and group dynamic, and a description of how the assignment was solved. The final report should also include the following attachments:
- Collaboration Agreement
- Project Plan (Gantt Diagram)
- Timesheets, including individual status report
- Vision Document
- Link to Gitlab
Lastly each team members will need to hand in a final, individual document, describing their contribution to the team, and a reflection on the group collaboration as a whole.