# Welcome to Transkriptor!
Hello, and welcome to your first day as a Flutter developer at Transkriptor! We're excited to have you join our innovative team. Your first assignment involves a key component of our new experimental app, which focuses on generating subtitles from video recordings.
## Your Task: Video Recorder Development
You are tasked with developing a robust video recorder module. This recorder is crucial as it will capture screen and microphone inputs that our app will then convert into subtitles. However, video recording is susceptible to various interruptions that can compromise the quality and integrity of the video and audio data.
### Common Interrupts and Considerations
Here are some interruptions you might encounter during screen and microphone recording:
1. **Battery Dies** - Sudden device shutdown due to battery drainage.
2. **Immediate App Closure** - Unexpected app termination by the user or the system.
3. **Incoming Phone Calls** - Disruptions due to phone calls which may take audio focus and pause the recording.
4. **Other Apps Taking Audio Focus** - Interruptions from other apps that begin to use the audio output, potentially pausing both screen and audio recording.
5. **System Notifications** - Audio and visual interruptions caused by system notifications that could overlap with the content being recorded.
6. **Low Memory Warnings** - Potential app disruptions or terminations due to low available memory, affecting the stability of both screen and microphone recording.
### Your Mission
Your manager expects you to handle these interruptions gracefully to ensure a seamless user experience. Consider the following in your solutions:
- Strategies to save and recover the current recording state.
- Techniques to resume recording seamlessly after an interruption.
- Methods to inform the user about recording interruptions and status effectively.
- UI/UX adjustments to keep the user informed about the recording's status and interruptions.
Please choose one of the above areas to focus on and provide detailed suggestions for how you would address it. Write your solutions in the text box below.
```
Write your answer there
```
---
# Part 2
# Congratulations!
Hurray! Your manager was impressed with your innovative solutions for handling interruptions during video recording. Now, it's time to dive deeper into the technical aspects of our app.
## Your New Challenge: Subtitle Search Algorithm
As part of our experimental subtitle generator app, we're now focusing on retrieving the correct subtitle from a large set of data based on the user's current playback time. Our backend sends responses in the following format, containing timestamps and associated text:
```json
subtitles = [
{ "timestamp": 132312, "text": "Hey Alice" },
{ "timestamp": 132992, "text": "Good to see you there, I have some..." }
]
```
The subtitles are not loaded all at once due to performance considerations, and your task is to implement an efficient algorithm to find the intended subtitle line given a specific timestamp.
### Function to Implement:
You need to write a function `getSubtitle` in Dart that takes a `timestamp` as an argument and returns the text of the nearest preceding subtitle based on the timestamp. Here is the skeleton of the function you'll implement:
```dart
String getSubtitle(int timestamp) {
// Implement your algorithm to find the related subtitle part fast and efficiently.
}
```
## Requirements:
- The function should handle cases where the timestamp does not exactly match any in the dataset but should return the closest prior subtitle text.
- Consider performance implications, especially with larger datasets. Think about time complexity and try to achieve O(log n) performance if possible.
- Make sure to handle edge cases, such as timestamps before the first subtitle or after the last.
We're excited to see how you tackle this challenge! Draft your implementation and explain your approach clearly.
---
# Part 3
# Keeping Users Engaged
Great progress on your subtitle search algorithm! As you continue to enhance our app's functionality, your next challenge focuses on user experience during potentially slow processes.
## Your Task: Engaging Users During Subtitle Generation
Subtitle generation can take some time, especially with longer audio files. During this process, users are typically shown a loading screen. To improve the user experience, we want to keep our users engaged rather than just passively waiting.
### Your Mission:
We're looking for creative ideas to keep users entertained or informed while they wait for subtitles to be generated. Here are a few areas you might consider:
- **Educational Content**: Could we provide users with interesting facts or tips related to the content they are transcribing?
- **Progress Feedback**: How can we creatively show the progress of subtitle generation to reassure users that the process is ongoing?
- **Interactive Elements**: Are there light interactive elements we can introduce that might keep users amused without being too distracting?
- **Customization Options**: Can users customize their app settings or subtitle styles during this waiting period?
### Requirements:
- Brainstorm at least three ideas that could be implemented to enhance user engagement on the loading screen.
- Explain how each idea could be integrated into the app without significantly increasing the loading time itself.
- Consider accessibility and ensure that any interactive or visual elements do not alienate users with different needs.
Draft your ideas below, and don't hesitate to be innovative!
```
Write your answer there
```
---
# Part 4
# Final Challenge: Homepage Design
You've done an incredible job so far! Your ideas for engaging users during the subtitle generation process were innovative and thoughtful. Now, we are excited to present you with the final task of your initial challenges here at Transkriptor.
## Your Task: Homepage Design
For this challenge, we are focusing on the visual aspects of our app. We believe that a well-designed homepage is crucial for making a great first impression on our users. We're providing you with a demo Figma file, and your task is to edit and construct your vision of the app's homepage.
### Your Mission:
Take the provided Figma demo and use it as a foundation to create a welcoming and intuitive homepage for the Transkriptor app. Your design should reflect the innovative and user-friendly ethos of our brand.
### Requirements:
- **Intuitive Layout**: Ensure that the layout is easy to navigate for all users, including those with accessibility needs.
- **Branding Consistency**: Your design should align with our existing brand colors and style guidelines.
- **Feature Highlights**: Make sure to highlight key features of the app in a way that's enticing but not overwhelming.
- **Responsive Design**: Consider how your design scales across different devices and orientations.
### Figma File Access:
You will find the demo Figma file here: [Insert Link to Figma File]
Please edit this file to create your homepage design. Once you have completed your design, please prepare a brief presentation to explain your design choices, focusing on how they enhance user experience and engagement.
We look forward to seeing your creativity in action!
```
File upload area
```