diff --git a/README.md b/README.md index cf40e62ab..27183e64c 100644 --- a/README.md +++ b/README.md @@ -7,16 +7,17 @@ The official IMI showtime website [Preview: https://htw-imi-showtime.github.io/](https://htw-imi-showtime.github.io/) -* [Adding a new project](#Adding-a-new-project) -* [Updating your Fork](#Updating-your-Fork) -* [Including additional content](#Including-additional-content) - * [Sections](#Sections) - * [Images](#Images) - * [Gallery](#Gallery) - * [Special Case: Team Gallery](#Special-Case-Team-Gallery) - * [Videos](#Videos) - * [HTW Mediathek Player](#HTW-Mediathek-Player) - * [GitHub Gists](#GitHub-Gists) +- [IMI Showtime Website](#imi-showtime-website) + - [Adding a new project](#adding-a-new-project) + - [Updating your Fork](#updating-your-fork) + - [Including additional content](#including-additional-content) + - [Sections](#sections) + - [Images](#images) + - [Gallery](#gallery) + - [Special Case: Team Gallery](#special-case-team-gallery) + - [Videos](#videos) + - [HTW Mediathek Player](#htw-mediathek-player) + - [GitHub Gists](#github-gists) ## Adding a new project If you want to add your project to the website, please follow these steps and create a pull request when you're done: @@ -44,14 +45,14 @@ git submodule update --init --recursive ``` 4. Create a new project directory for your project by duplicating either the bachelor's or the master's sample project directory: ``` -cp -R content/ws20/bachelor/b0-template-project/ content/ws20/bachelor/b#-your-project/ +cp -R content/ws21/bachelor/b0-template-project/ content/ws21/bachelor/b#-your-project/ ``` ``` -cp -R content/ws20/master/m0-template-project/ content/ws20/master/m#-your-project/ +cp -R content/ws21/master/m0-template-project/ content/ws21/master/m#-your-project/ ``` **Please make sure to include your project number! (e.g. B2, M1, ...)** -5. Fill out your project's homepage `content/ws20//##-your-project/_index.md` and any subpages in your project's directory you'd like to keep. Delete the subpages you don't need.\ +5. Fill out your project's homepage `content/ws21//##-your-project/_index.md` and any subpages in your project's directory you'd like to keep. Delete the subpages you don't need.\ **Please don't use Markdown headings (hashtags) directly, since those headings won't be displayed correctly.** Have a look at the [section documentation](#Sections) below or the template projects for including headings.\ If you need help with the markdown syntax, have a look at this [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).\ @@ -60,13 +61,13 @@ cp -R content/ws20/master/m0-template-project/ content/ws20/master/m#-your-proje 6. Preview your changes locally to make sure everything looks fine by executing `hugo server` and visiting http://localhost:1313/ in your browser. 7. Add your changes to the git index, commit them to the repository and push them to GitHub: ``` -git add content/ws20// +git add content/ws21// git commit -m "Your commit message" git push ``` 8. Create a new pull request on GitHub that merges your version of the repo's `master` branch onto the htw-imi-showtime `master` branch. ([GitHub Help: Creating a pull request from a fork](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)) -Once your branch was merged, you may preview your project's page on our staging server: https://htw-imi-showtime.github.io/ +Once your branch was merged, you may preview your project's page on our staging server: https://htw-imi-showtime.github.io/ One week before the Showtime takes place, the website will be published on our production server: https://showtime.f4.htw-berlin.de/ @@ -88,7 +89,7 @@ git submodule update ``` ## Including additional content -In addition to the required content you can add any content you want - at least this term (winter semester 2021) this site +In addition to the required content you can add any content you want - at least this term (winter semester 2021/22) this site replaces the Showtime Fair with the booths and posters. Please consider - the Urheberrecht for all material you provide: Include the information (source, creator etc.) in the caption - please reduce the file sizes for all images and videos that are included in the site diff --git a/config/_default/config.toml b/config/_default/config.toml index b6d51bd5f..ac1ccd01c 100644 --- a/config/_default/config.toml +++ b/config/_default/config.toml @@ -4,7 +4,7 @@ title = "IMI Showtime" theme = "showtime-theme-2021" [params] - current_semester = "ws20" + current_semester = "ss21" archive_semester = "ss20" [markup] diff --git a/content/_index.md b/content/_index.md index 41a825322..1258ef898 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,13 +1,13 @@ +++ -showtime_date = "12/02/2021" +showtime_date = "16/07/2021" showtime_place = "REMOTE" is_live = "false" -zoom_link = "https://htw-berlin.zoom.us/j/97320821203" +zoom_link = "TBD" +++ {{}} -This term is the second term already that all projects and our Showtime are held in +This term is the third term already that all projects and our Showtime are held in a distance format - sad, but also an opportunity to explore the projects from afar! Just dip in for one or two project presentations, visit the projects in their virtual booths or watch the presentation videos, diff --git a/content/contact.md b/content/contact.md index c679904b5..327e31294 100644 --- a/content/contact.md +++ b/content/contact.md @@ -6,6 +6,6 @@ layout = "contact" The IMIxShowtime is a showcase of the term-long practical projects in the International Media and Computing [Bachelor's](https://imi-bachelor.htw-berlin.de) and -[Master's](https://imi-master.htw-berlin.de) programmes. +[Master's](https://imi-master.htw-berlin.de) programs. It takes place every term on the Friday of the last week of lectures. diff --git a/content/imprint.md b/content/imprint.md index 939d5e5b1..3b51c9272 100644 --- a/content/imprint.md +++ b/content/imprint.md @@ -7,16 +7,16 @@ Diese Seite präsentiert Praxisprojekte der Studiengänge [Internationale Medien #### Redaktionelle Verantwortung und verantwortliche Ansprechperson Studiengangssprecher der Studiengänge Internationale Medieninformatik -Prof. Dr. Barne Kleinen\ +Prof. Dr. Gefei Zhang\ HTW Berlin, Fachbereich 4\ Wilhelminenhofstr. 75A\ 12495 Berlin -barne.kleinen@htw-berlin.de +gefei.zhang@htw-berlin.de https://www.htw-berlin.de/impressum/ -Telefon: +49 30 5019 - 3499 +Telefon: +49 30 5019 - 3738 #### Urheberschutz und Nutzung Die Urheber räumen Ihnen ganz konkret das Nutzungsrecht ein, sich eine private Kopie für persönliche Zwecke anzufertigen. Nicht berechtigt sind Sie dagegen, die Materialien zu verändern und/oder weiter zu geben oder gar selbst zu veröffentlichen. Wenn nicht ausdrücklich anders vermerkt, liegen die Urheberrechte für Texte bei den Studierenden. @@ -28,7 +28,7 @@ Vielen Dank für Ihr Interesse an unserer Hochschule. Der Schutz Ihrer Daten ist Die Inhalte dieses Webprojektes wurden sorgfältig geprüft und nach bestem Wissen erstellt. Aber für die hier dargebotenen Informationen wird kein Anspruch auf Vollständigkeit, Aktualität, Qualität oder Richtigkeit erhoben. Es kann keine Verantwortung für Schäden übernommen werden, die durch das Vertrauen auf die Inhalte dieser Website oder deren Gebrauch entstehen. #### Schutzrechtsverletzung -Falls Sie vermuten, dass von dieser Website aus eines Ihrer Schutzrechte verletzt wird, teilen Sie das bitte umgehend per elektronischer Post an barne.kleinen@htw-berlin.de mit, damit zügig Abhilfe geschafft werden kann. Bitte nehmen Sie zur Kenntnis: Die zeitaufwändigere Einschaltung eines Anwaltes zur für den Diensteanbieter kostenpflichtigen Abmahnung entspricht nicht dessen wirklichen oder mutmaßlichen Willen. +Falls Sie vermuten, dass von dieser Website aus eines Ihrer Schutzrechte verletzt wird, teilen Sie das bitte umgehend per elektronischer Post an gefei.zhang@htw-berlin.de mit, damit zügig Abhilfe geschafft werden kann. Bitte nehmen Sie zur Kenntnis: Die zeitaufwändigere Einschaltung eines Anwaltes zur für den Diensteanbieter kostenpflichtigen Abmahnung entspricht nicht dessen wirklichen oder mutmaßlichen Willen. #### Anmerkungen Theme-Design: [Tobi Hoffmann](http://tobihoffmann.com/) \ diff --git a/content/projects.md b/content/projects.md index 6d1004cca..68f3fea92 100644 --- a/content/projects.md +++ b/content/projects.md @@ -2,4 +2,4 @@ title = "Projects" layout = "projects_list" +++ -This term there are [6 bachelor's](#B1) and [4 master's](#M1) projects. +This term there are [5 bachelor's](#B1) and [5 master's](#M1) projects. diff --git a/content/ss21/_index.md b/content/ss21/_index.md new file mode 100644 index 000000000..e84b15916 --- /dev/null +++ b/content/ss21/_index.md @@ -0,0 +1,5 @@ ++++ +title = "ss21" +full_title = "Summer semester 2021" +layout = "projects_archive" ++++ diff --git a/content/ss21/bachelor/_index.md b/content/ss21/bachelor/_index.md new file mode 100644 index 000000000..081022424 --- /dev/null +++ b/content/ss21/bachelor/_index.md @@ -0,0 +1,7 @@ ++++ +type = "ss21" + +[cascade] + type = "Bachelor" + layout = "project" ++++ diff --git a/content/ss21/bachelor/b0-template-project/FB4_IMI.jpg b/content/ss21/bachelor/b0-template-project/FB4_IMI.jpg new file mode 100644 index 000000000..42c06dccf Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/FB4_IMI.jpg differ diff --git a/content/ss21/bachelor/b0-template-project/Overview_features.png b/content/ss21/bachelor/b0-template-project/Overview_features.png new file mode 100644 index 000000000..34cdc190d Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/Overview_features.png differ diff --git a/content/ss21/bachelor/b0-template-project/_index.md b/content/ss21/bachelor/b0-template-project/_index.md new file mode 100644 index 000000000..206f843e7 --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/_index.md @@ -0,0 +1,37 @@ ++++ +title = "Bachelor Project Template" +project_id = "B0" + +# Properties for displaying the project in the project list +card_image = "FB4_IMI.jpg" +card_description = "Template, copy of a project of WS20/21" + + +# These properties may be removed if you don't need them +source_link = "links to Git repo" + + +team = ["Bachelor", "Bachelorette"] +supervisor = "Prof. Dr. Bachelor Master" ++++ + +{{}} + +This is only a template + +{{Mockup}} +{{
}} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. +{{
}} + + + +{{
}} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. +{{
}} + +{{}} +{{}} +{{}} diff --git a/content/ss21/bachelor/b0-template-project/anton.png b/content/ss21/bachelor/b0-template-project/anton.png new file mode 100644 index 000000000..fe521e10b Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/anton.png differ diff --git a/content/ss21/bachelor/b0-template-project/dummy_feature_image_01.png b/content/ss21/bachelor/b0-template-project/dummy_feature_image_01.png new file mode 100644 index 000000000..fb25b507c Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/dummy_feature_image_01.png differ diff --git a/content/ss21/bachelor/b0-template-project/evolution_of_history.png b/content/ss21/bachelor/b0-template-project/evolution_of_history.png new file mode 100644 index 000000000..814c83233 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/evolution_of_history.png differ diff --git a/content/ss21/bachelor/b0-template-project/features.md b/content/ss21/bachelor/b0-template-project/features.md new file mode 100644 index 000000000..38e6dc711 --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/features.md @@ -0,0 +1,62 @@ ++++ +title = "Features" +weight = 1 ++++ + +{{Mockup}} +{{
}} +#### Offline Data +Our app is completely offline compatible +We have **over 30.000 ingredients** stored in our data set. +It was important for us to guarantee that the user is always able to use the app. Therefore we didn't want to rely on an internet connection. + +#### Text Recognition/Filtering +Our app uses the Firebase ML text recognition to recognise the ingredients on the back of the product. + +The **backside** of a product is **full of information that isn't interesting to us or our app**. So **filtering out** the information we need was quite **important for the performance** of our app. +Some things that our app takes into account is **how** the **ingredients are separated**. It differs from product to product how they separate the ingredients, **some use commas**, some use **dashes**, some just use **spaces**. For our app to scan products as fast as possible, we need to recognise which word is an ingredient and which isn't, so our search algorithm doesn't have to search for words that aren't ingredients. +Another way to improve our text filter was to **look for the word 'ingredients'** or variations of it. In most cases, the list of ingredients starts with the word 'ingredients', so **finding this word** in our text **helped us locate the list of ingredients** in our scanned text. + +#### Allergies +One of our **core features** is the allergy feature. This feature **derived from one of our User Personas** that we created for our app. **People with allergies** can use our app to **manage** them and use it as a **signal** for whenever they are about to **buy a product they are allergic to**. + + +{{
}} + + +{{
}} +Levenshtein distance is an **approximate string matching algorithm**, which calculates the distance between two words. +The distance is calculated via the three operations: **insertion, deletion and substitution**. +The reason we needed an **approximate** string matching algorithm, is because we are working with text recognition and text recognition is **prone to errors**. +We used this algorithm in **combination** with the **Trie data structure** in order to guarantee **fast querying** of our data. +{{
}} + +{{}} + + + diff --git a/content/ss21/bachelor/b0-template-project/future.md b/content/ss21/bachelor/b0-template-project/future.md new file mode 100644 index 000000000..ed43b2b6e --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/future.md @@ -0,0 +1,26 @@ ++++ +title = "Future" +weight = 4 ++++ + +{{
}} +While things like improving the text recognition or speeding up the scanning are ongoing processes, we still have some ideas for new features that will improve the app. +One thing that is on our bucket list, is to contact the **European Commission** because they have **shown interest** in projects that use their data. +The European Commission has other datasets that are related to the CosIng dataset that we use, so we want to **expand our dataset** and implement relations between these datasets. + +{{
}} + +{{
}} +#### Groups for common allergies +There are a couple of common allergies like peanuts and shellfish out there. Our idea is to have **groups** for these allergies. Once a user selects one of the products, we **mark all the related allergies** to that product. It should make the **initial setup** of our app a little **easier**. + +#### Advanced camera +While our camera does what it is supposed to do, it is still pretty bare bones. **Post-processing for our images** is the keyword here. Little things like **adjusting the brightness** so the text recognition has an easier time recognising the text. We also want to give the user options like **turning on the flashlight** etc. + +#### Barcode scanning +There are a couple of apps out there that can scan the barcode of cosmetic products. While scanning the text is generally a better idea because not all products have barcodes on them, scanning the barcode still has a **couple of perks**, so **providing both options** is something we will look into as an upcoming feature. + +#### Expandable database by users +One of our ideas would be to **give the users the chance** to **improve our app** by adding useful information to the substances itself. They could either **add additional information** to the content that is already there or just have some **notes** to the substances, like their **prior experiences**, connections to other substances, etc. + + diff --git a/content/ss21/bachelor/b0-template-project/headerindex.png b/content/ss21/bachelor/b0-template-project/headerindex.png new file mode 100644 index 000000000..263d0c9cb Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/headerindex.png differ diff --git a/content/ss21/bachelor/b0-template-project/henry.png b/content/ss21/bachelor/b0-template-project/henry.png new file mode 100644 index 000000000..f9d5ebfac Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/henry.png differ diff --git a/content/ss21/bachelor/b0-template-project/jonathan.jpg b/content/ss21/bachelor/b0-template-project/jonathan.jpg new file mode 100644 index 000000000..672db534c Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/jonathan.jpg differ diff --git a/content/ss21/bachelor/b0-template-project/kenneth.jpg b/content/ss21/bachelor/b0-template-project/kenneth.jpg new file mode 100644 index 000000000..db19a7674 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/kenneth.jpg differ diff --git a/content/ss21/bachelor/b0-template-project/kieu.jpeg b/content/ss21/bachelor/b0-template-project/kieu.jpeg new file mode 100644 index 000000000..3c4dc3614 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/kieu.jpeg differ diff --git a/content/ss21/bachelor/b0-template-project/kiss_cray_diagonal.png b/content/ss21/bachelor/b0-template-project/kiss_cray_diagonal.png new file mode 100644 index 000000000..9829afa81 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/kiss_cray_diagonal.png differ diff --git a/content/ss21/bachelor/b0-template-project/logo.svg b/content/ss21/bachelor/b0-template-project/logo.svg new file mode 100644 index 000000000..51e8ec619 --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/ss21/bachelor/b0-template-project/mockups_triple.png b/content/ss21/bachelor/b0-template-project/mockups_triple.png new file mode 100644 index 000000000..0a8864fe4 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/mockups_triple.png differ diff --git a/content/ss21/bachelor/b0-template-project/niklas.jpeg b/content/ss21/bachelor/b0-template-project/niklas.jpeg new file mode 100644 index 000000000..075b1e84b Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/niklas.jpeg differ diff --git a/content/ss21/bachelor/b0-template-project/process.md b/content/ss21/bachelor/b0-template-project/process.md new file mode 100644 index 000000000..4b0f2cdba --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/process.md @@ -0,0 +1,55 @@ ++++ +title = "Process" +weight = 2 ++++ + + +{{
}} +Our **goal was clear**. We generally knew what we had to do to reach our goal. +Some **questions** still **came up**, that had to be answered first, before starting to code. +We had to first **decide on a framework** we want to use. +It was also important to know upfront whether our app is **offline or online**. +After answering all these questions, we **split up in two subgroups**. One group was **responsible for the backend** and how we would **retrieve the data**. +The other group was **responsible for the frontend** and how we **integrate the text recognition plugin**. +We were **always staying in contact** and **communicating with each other regularly**. +We **stayed** in these **subgroups** up until our **prototype was done**. +{{
}} +{{
}} +We knew a couple of things before thinking of our design. Our app would have three pages: A **search, camera and history screen**. We also liked the idea of **valuing a clean and simple design over a complex one** because it fits our app the best. +{{
}} +{{Mockups}} +{{
}} +For our **prototype**, we wanted to make sure that our **basic structure** and **feature set** is **present**. Our **UI** wasn't the **main focus at that point**. After having our prototype, we also set out to **improve our UI** by making it **look more like our Mockup**. +{{
}} +{{Evolution of history}} + +{{
}} +Our second phase started with a **brainstorm**. +We thought about **possible features** and **sorted them by their priority**. +This process took some time because we came up with great ideas but filtering them to what was possible in our given time window wasn't easy. +The **Miro board helped us** a lot in the process of visualising and managing our ideas. +We also used it as a Task/Kanban board. +We **never ran out of ideas**, therefore our idea collection and **prioritisation changed weekly**. +Staying in touch with our **supervisor helped us** a good deal with our decision making over which features to implement. +Keeping a **constant communication flow allowed** us to be **very flexible**. +This phase lasted until the end of our development. +{{
}} + +{{
}} +#### Group responsible for our data retrieval + +Our backend group struggled with retrieving data at first. +Since our **data came from the European Commission**, who was **fond of helping people** who were going to use the data, we knew that we wanted to **get in touch** with them to see if they had an **API endpoint** or something else to help us in any way. +It turns out they had one, but it was **poorly documented**. +We **didn't know** how to **access the data** we wanted. +After a lot of **confusion** and a couple of **mails exchanging**, we found out that the endpoint **didn't even provide a way to access the data** but only to return a file containing the data. +So it was a **dead-end** and cost us at least 1 1/2 weeks. + +#### Group responsible for our text recognition + +At around the same time, the other group struggled with their own problems. +One of their tasks was to **cut unnecessary words from our recognized text**, so we didn't have to search for them in our database hence improving our performance. +Their **idea** was to use **RegEx** but **no one** in our group **has used** RegEx before. +It was quite a **drag** for them to get into RegEx, especially because we had so many **little details to consider**. +This was an **ongoing process** up until the end because there was always **something to improve on**. +{{
}} diff --git a/content/ss21/bachelor/b0-template-project/project_image.png b/content/ss21/bachelor/b0-template-project/project_image.png new file mode 100644 index 000000000..1c828e1f6 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/project_image.png differ diff --git a/content/ss21/bachelor/b0-template-project/shadowlessBordeaux.svg b/content/ss21/bachelor/b0-template-project/shadowlessBordeaux.svg new file mode 100644 index 000000000..dfac58bc6 --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/shadowlessBordeaux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/ss21/bachelor/b0-template-project/tech-stack-kiss.png b/content/ss21/bachelor/b0-template-project/tech-stack-kiss.png new file mode 100644 index 000000000..597946d94 Binary files /dev/null and b/content/ss21/bachelor/b0-template-project/tech-stack-kiss.png differ diff --git a/content/ss21/bachelor/b0-template-project/tech-stack.md b/content/ss21/bachelor/b0-template-project/tech-stack.md new file mode 100644 index 000000000..dcb58d6ca --- /dev/null +++ b/content/ss21/bachelor/b0-template-project/tech-stack.md @@ -0,0 +1,37 @@ ++++ +title = "Tech Stack" +weight = 3 ++++ + +{{tech stack visualized}} + +{{
}} +#### Flutter™️ +The **first step** of the journey was choosing a **framework** that meets our requirements. We had very **little experience** with app development, so it was necessary to do some **self-reliant research** first and we ended up with two candidates: **React Native and Flutter** +and we decided on the latter. +The framework Flutter **gained** a lot of **popularity** among App-Developers in recent years. +It allows us to develop our app **cross-platform**, so we receive a working Android APK as well as an iOS-Build with very few adjustments. +**Learning a new programming language** may seem **difficult** at first sight - Flutter is written in Dart - but with its **syntactical similarities to Java and JavaScript**, we quickly **got used to it**. +With Flutter, you can build the **UI** design and the **backend** logic in the **same code base**, so it's easier to connect both elements and helped us to achieve an **uninterrupted workflow**. + +#### Firebase ML Kit +Text recognition is one of the **most essential** features of the KISS-App. +The **mobile SDK Firebase ML Kit** provides **machine learning functionalities** and allows us to **recognize text instantly** from captured photos and use it for further processing. + +#### Android Studio and IntelliJ +Installing Flutter, setting up the IDE and the necessary emulators was **trickier than expected**: +**Each team member** had to **fight** with some **issues** to get the tools running before we could start with the actual development. In the end, **half of our group** used **Android Studio** and the **others** went with **IntelliJ** but there aren't any differences in functionality. + +{{
}} + +{{
}} +#### GitHub/git +We decided to use GitHub as our hosting platform for version control and figured out a **useful and collaborative workflow** after a while. + +#### Miro +We used Miro as an altered form of an agile Kanban board for **visualizing our ideas, suggestions, and useful links**. +By using pins, we created a visual overview of the tasks that are currently worked on and prioritized each one to know what to do next + +#### Discord/Zoom +**Discord** was mainly our **communication platform** for team meetings and quick interactions during the project semester. Additionally, we used **Zoom** for **meetings** with our **supervisor**. +{{
}} diff --git a/content/ss21/master/_index.md b/content/ss21/master/_index.md new file mode 100644 index 000000000..a4b936318 --- /dev/null +++ b/content/ss21/master/_index.md @@ -0,0 +1,7 @@ ++++ +type = "ss21" + +[cascade] + type = "Master" + layout = "project" ++++ diff --git a/content/ss21/master/m0-template-project/Overview_features.png b/content/ss21/master/m0-template-project/Overview_features.png new file mode 100644 index 000000000..34cdc190d Binary files /dev/null and b/content/ss21/master/m0-template-project/Overview_features.png differ diff --git a/content/ss21/master/m0-template-project/_index.md b/content/ss21/master/m0-template-project/_index.md new file mode 100644 index 000000000..e313a037b --- /dev/null +++ b/content/ss21/master/m0-template-project/_index.md @@ -0,0 +1,37 @@ ++++ +title = "Master Project Template" +project_id = "M0" + +# Properties for displaying the project in the project list +card_image = "shadowlessBordeaux.svg" +card_description = "Template, copy of a project of WS20/21" + + +# These properties may be removed if you don't need them +source_link = "https://github.com/HuePhung/Kiss_Project" + + +team = ["Many master students" ] +supervisor = "Prof. Dr. TL" ++++ + +{{}} + +This is only a template + +{{Mockup}} +{{
}} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. +{{
}} + + + +{{
}} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. +{{
}} + +{{}} +{{}} +{{}} diff --git a/content/ss21/master/m0-template-project/anton.png b/content/ss21/master/m0-template-project/anton.png new file mode 100644 index 000000000..fe521e10b Binary files /dev/null and b/content/ss21/master/m0-template-project/anton.png differ diff --git a/content/ss21/master/m0-template-project/dummy_feature_image_01.png b/content/ss21/master/m0-template-project/dummy_feature_image_01.png new file mode 100644 index 000000000..fb25b507c Binary files /dev/null and b/content/ss21/master/m0-template-project/dummy_feature_image_01.png differ diff --git a/content/ss21/master/m0-template-project/evolution_of_history.png b/content/ss21/master/m0-template-project/evolution_of_history.png new file mode 100644 index 000000000..814c83233 Binary files /dev/null and b/content/ss21/master/m0-template-project/evolution_of_history.png differ diff --git a/content/ss21/master/m0-template-project/features.md b/content/ss21/master/m0-template-project/features.md new file mode 100644 index 000000000..38e6dc711 --- /dev/null +++ b/content/ss21/master/m0-template-project/features.md @@ -0,0 +1,62 @@ ++++ +title = "Features" +weight = 1 ++++ + +{{Mockup}} +{{
}} +#### Offline Data +Our app is completely offline compatible +We have **over 30.000 ingredients** stored in our data set. +It was important for us to guarantee that the user is always able to use the app. Therefore we didn't want to rely on an internet connection. + +#### Text Recognition/Filtering +Our app uses the Firebase ML text recognition to recognise the ingredients on the back of the product. + +The **backside** of a product is **full of information that isn't interesting to us or our app**. So **filtering out** the information we need was quite **important for the performance** of our app. +Some things that our app takes into account is **how** the **ingredients are separated**. It differs from product to product how they separate the ingredients, **some use commas**, some use **dashes**, some just use **spaces**. For our app to scan products as fast as possible, we need to recognise which word is an ingredient and which isn't, so our search algorithm doesn't have to search for words that aren't ingredients. +Another way to improve our text filter was to **look for the word 'ingredients'** or variations of it. In most cases, the list of ingredients starts with the word 'ingredients', so **finding this word** in our text **helped us locate the list of ingredients** in our scanned text. + +#### Allergies +One of our **core features** is the allergy feature. This feature **derived from one of our User Personas** that we created for our app. **People with allergies** can use our app to **manage** them and use it as a **signal** for whenever they are about to **buy a product they are allergic to**. + + +{{
}} + + +{{
}} +Levenshtein distance is an **approximate string matching algorithm**, which calculates the distance between two words. +The distance is calculated via the three operations: **insertion, deletion and substitution**. +The reason we needed an **approximate** string matching algorithm, is because we are working with text recognition and text recognition is **prone to errors**. +We used this algorithm in **combination** with the **Trie data structure** in order to guarantee **fast querying** of our data. +{{
}} + +{{}} + + + diff --git a/content/ss21/master/m0-template-project/future.md b/content/ss21/master/m0-template-project/future.md new file mode 100644 index 000000000..ed43b2b6e --- /dev/null +++ b/content/ss21/master/m0-template-project/future.md @@ -0,0 +1,26 @@ ++++ +title = "Future" +weight = 4 ++++ + +{{
}} +While things like improving the text recognition or speeding up the scanning are ongoing processes, we still have some ideas for new features that will improve the app. +One thing that is on our bucket list, is to contact the **European Commission** because they have **shown interest** in projects that use their data. +The European Commission has other datasets that are related to the CosIng dataset that we use, so we want to **expand our dataset** and implement relations between these datasets. + +{{
}} + +{{
}} +#### Groups for common allergies +There are a couple of common allergies like peanuts and shellfish out there. Our idea is to have **groups** for these allergies. Once a user selects one of the products, we **mark all the related allergies** to that product. It should make the **initial setup** of our app a little **easier**. + +#### Advanced camera +While our camera does what it is supposed to do, it is still pretty bare bones. **Post-processing for our images** is the keyword here. Little things like **adjusting the brightness** so the text recognition has an easier time recognising the text. We also want to give the user options like **turning on the flashlight** etc. + +#### Barcode scanning +There are a couple of apps out there that can scan the barcode of cosmetic products. While scanning the text is generally a better idea because not all products have barcodes on them, scanning the barcode still has a **couple of perks**, so **providing both options** is something we will look into as an upcoming feature. + +#### Expandable database by users +One of our ideas would be to **give the users the chance** to **improve our app** by adding useful information to the substances itself. They could either **add additional information** to the content that is already there or just have some **notes** to the substances, like their **prior experiences**, connections to other substances, etc. + + diff --git a/content/ss21/master/m0-template-project/headerindex.png b/content/ss21/master/m0-template-project/headerindex.png new file mode 100644 index 000000000..263d0c9cb Binary files /dev/null and b/content/ss21/master/m0-template-project/headerindex.png differ diff --git a/content/ss21/master/m0-template-project/henry.png b/content/ss21/master/m0-template-project/henry.png new file mode 100644 index 000000000..f9d5ebfac Binary files /dev/null and b/content/ss21/master/m0-template-project/henry.png differ diff --git a/content/ss21/master/m0-template-project/jonathan.jpg b/content/ss21/master/m0-template-project/jonathan.jpg new file mode 100644 index 000000000..672db534c Binary files /dev/null and b/content/ss21/master/m0-template-project/jonathan.jpg differ diff --git a/content/ss21/master/m0-template-project/kenneth.jpg b/content/ss21/master/m0-template-project/kenneth.jpg new file mode 100644 index 000000000..db19a7674 Binary files /dev/null and b/content/ss21/master/m0-template-project/kenneth.jpg differ diff --git a/content/ss21/master/m0-template-project/kieu.jpeg b/content/ss21/master/m0-template-project/kieu.jpeg new file mode 100644 index 000000000..3c4dc3614 Binary files /dev/null and b/content/ss21/master/m0-template-project/kieu.jpeg differ diff --git a/content/ss21/master/m0-template-project/kiss_cray_diagonal.png b/content/ss21/master/m0-template-project/kiss_cray_diagonal.png new file mode 100644 index 000000000..9829afa81 Binary files /dev/null and b/content/ss21/master/m0-template-project/kiss_cray_diagonal.png differ diff --git a/content/ss21/master/m0-template-project/logo.svg b/content/ss21/master/m0-template-project/logo.svg new file mode 100644 index 000000000..51e8ec619 --- /dev/null +++ b/content/ss21/master/m0-template-project/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/ss21/master/m0-template-project/mockups_triple.png b/content/ss21/master/m0-template-project/mockups_triple.png new file mode 100644 index 000000000..0a8864fe4 Binary files /dev/null and b/content/ss21/master/m0-template-project/mockups_triple.png differ diff --git a/content/ss21/master/m0-template-project/niklas.jpeg b/content/ss21/master/m0-template-project/niklas.jpeg new file mode 100644 index 000000000..075b1e84b Binary files /dev/null and b/content/ss21/master/m0-template-project/niklas.jpeg differ diff --git a/content/ss21/master/m0-template-project/process.md b/content/ss21/master/m0-template-project/process.md new file mode 100644 index 000000000..4b0f2cdba --- /dev/null +++ b/content/ss21/master/m0-template-project/process.md @@ -0,0 +1,55 @@ ++++ +title = "Process" +weight = 2 ++++ + + +{{
}} +Our **goal was clear**. We generally knew what we had to do to reach our goal. +Some **questions** still **came up**, that had to be answered first, before starting to code. +We had to first **decide on a framework** we want to use. +It was also important to know upfront whether our app is **offline or online**. +After answering all these questions, we **split up in two subgroups**. One group was **responsible for the backend** and how we would **retrieve the data**. +The other group was **responsible for the frontend** and how we **integrate the text recognition plugin**. +We were **always staying in contact** and **communicating with each other regularly**. +We **stayed** in these **subgroups** up until our **prototype was done**. +{{
}} +{{
}} +We knew a couple of things before thinking of our design. Our app would have three pages: A **search, camera and history screen**. We also liked the idea of **valuing a clean and simple design over a complex one** because it fits our app the best. +{{
}} +{{Mockups}} +{{
}} +For our **prototype**, we wanted to make sure that our **basic structure** and **feature set** is **present**. Our **UI** wasn't the **main focus at that point**. After having our prototype, we also set out to **improve our UI** by making it **look more like our Mockup**. +{{
}} +{{Evolution of history}} + +{{
}} +Our second phase started with a **brainstorm**. +We thought about **possible features** and **sorted them by their priority**. +This process took some time because we came up with great ideas but filtering them to what was possible in our given time window wasn't easy. +The **Miro board helped us** a lot in the process of visualising and managing our ideas. +We also used it as a Task/Kanban board. +We **never ran out of ideas**, therefore our idea collection and **prioritisation changed weekly**. +Staying in touch with our **supervisor helped us** a good deal with our decision making over which features to implement. +Keeping a **constant communication flow allowed** us to be **very flexible**. +This phase lasted until the end of our development. +{{
}} + +{{
}} +#### Group responsible for our data retrieval + +Our backend group struggled with retrieving data at first. +Since our **data came from the European Commission**, who was **fond of helping people** who were going to use the data, we knew that we wanted to **get in touch** with them to see if they had an **API endpoint** or something else to help us in any way. +It turns out they had one, but it was **poorly documented**. +We **didn't know** how to **access the data** we wanted. +After a lot of **confusion** and a couple of **mails exchanging**, we found out that the endpoint **didn't even provide a way to access the data** but only to return a file containing the data. +So it was a **dead-end** and cost us at least 1 1/2 weeks. + +#### Group responsible for our text recognition + +At around the same time, the other group struggled with their own problems. +One of their tasks was to **cut unnecessary words from our recognized text**, so we didn't have to search for them in our database hence improving our performance. +Their **idea** was to use **RegEx** but **no one** in our group **has used** RegEx before. +It was quite a **drag** for them to get into RegEx, especially because we had so many **little details to consider**. +This was an **ongoing process** up until the end because there was always **something to improve on**. +{{
}} diff --git a/content/ss21/master/m0-template-project/project_image.png b/content/ss21/master/m0-template-project/project_image.png new file mode 100644 index 000000000..1c828e1f6 Binary files /dev/null and b/content/ss21/master/m0-template-project/project_image.png differ diff --git a/content/ss21/master/m0-template-project/shadowlessBordeaux.svg b/content/ss21/master/m0-template-project/shadowlessBordeaux.svg new file mode 100644 index 000000000..dfac58bc6 --- /dev/null +++ b/content/ss21/master/m0-template-project/shadowlessBordeaux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/ss21/master/m0-template-project/tech-stack-kiss.png b/content/ss21/master/m0-template-project/tech-stack-kiss.png new file mode 100644 index 000000000..597946d94 Binary files /dev/null and b/content/ss21/master/m0-template-project/tech-stack-kiss.png differ diff --git a/content/ss21/master/m0-template-project/tech-stack.md b/content/ss21/master/m0-template-project/tech-stack.md new file mode 100644 index 000000000..dcb58d6ca --- /dev/null +++ b/content/ss21/master/m0-template-project/tech-stack.md @@ -0,0 +1,37 @@ ++++ +title = "Tech Stack" +weight = 3 ++++ + +{{tech stack visualized}} + +{{
}} +#### Flutter™️ +The **first step** of the journey was choosing a **framework** that meets our requirements. We had very **little experience** with app development, so it was necessary to do some **self-reliant research** first and we ended up with two candidates: **React Native and Flutter** +and we decided on the latter. +The framework Flutter **gained** a lot of **popularity** among App-Developers in recent years. +It allows us to develop our app **cross-platform**, so we receive a working Android APK as well as an iOS-Build with very few adjustments. +**Learning a new programming language** may seem **difficult** at first sight - Flutter is written in Dart - but with its **syntactical similarities to Java and JavaScript**, we quickly **got used to it**. +With Flutter, you can build the **UI** design and the **backend** logic in the **same code base**, so it's easier to connect both elements and helped us to achieve an **uninterrupted workflow**. + +#### Firebase ML Kit +Text recognition is one of the **most essential** features of the KISS-App. +The **mobile SDK Firebase ML Kit** provides **machine learning functionalities** and allows us to **recognize text instantly** from captured photos and use it for further processing. + +#### Android Studio and IntelliJ +Installing Flutter, setting up the IDE and the necessary emulators was **trickier than expected**: +**Each team member** had to **fight** with some **issues** to get the tools running before we could start with the actual development. In the end, **half of our group** used **Android Studio** and the **others** went with **IntelliJ** but there aren't any differences in functionality. + +{{
}} + +{{
}} +#### GitHub/git +We decided to use GitHub as our hosting platform for version control and figured out a **useful and collaborative workflow** after a while. + +#### Miro +We used Miro as an altered form of an agile Kanban board for **visualizing our ideas, suggestions, and useful links**. +By using pins, we created a visual overview of the tasks that are currently worked on and prioritized each one to know what to do next + +#### Discord/Zoom +**Discord** was mainly our **communication platform** for team meetings and quick interactions during the project semester. Additionally, we used **Zoom** for **meetings** with our **supervisor**. +{{
}} diff --git a/data/contacts.toml b/data/contacts.toml index 08fb06440..f4a4067c6 100644 --- a/data/contacts.toml +++ b/data/contacts.toml @@ -1,8 +1,8 @@ [[contacts]] title = "Supervising Projects" description = "If you are interested in supervising a project: Great! We are always looking for partners in industry for projects." - contact = "Studiengangssprecher IMI - Dr. Barne Kleinen" - email = "barne.kleinen@htw-berlin.de" + contact = "Studiengangssprecher IMI - Dr. Gefei Zhang" + email = "gefei.zhang@htw-berlin.de" [[contacts]] title = "Questions about IMI⨯ST" diff --git a/data/dates.toml b/data/dates.toml index cc8650bbe..9c762a3aa 100644 --- a/data/dates.toml +++ b/data/dates.toml @@ -1,13 +1,3 @@ -[[dates]] - title = "IMI Showtime Winter 20/21" - description = "The current Showtime" - date = "2021-02-12" - -[[dates]] - title = "Project Assignment Summer 2021" - description = "Wednesday, April 7, 2021, 10:00 Bachelor 12:00 Master" - date = "2021-04-07" - [[dates]] title = "IMI Showtime Summer 2021" description = "Friday, July 16, 2021"