Messaging apps have become an essential part of our daily lives, allowing us to easily communicate with friends, family, and colleagues. Over the years, they evolved significantly, from simple text messaging to video calling and more. However, as messaging apps have become more popular, concerns about privacy and security have also increased. Many messaging apps have been criticized for their lack of security and the potential for users' private data to be compromised.
Messaging apps have become an essential part of our daily lives, allowing us to easily communicate with friends, family, and colleagues. Over the years, they evolved significantly, from simple text messaging to video calling and more. However, as messaging apps have become more popular, concerns about privacy and security have also increased. Many messaging apps have been criticized for their lack of security and the potential for users' private data to be compromised.
### Objective
### Objective
Build a secure mobile messaging app using Flutter and Firebase (or similar technologies). It should support either iOS, Android or both. The app should have biometric authentication, end-to-end encryption, and other security features to protect user data. Users should be able to send text messages, images, and videos, and create or join group chats.
Build a secure mobile messaging app using Flutter and Firebase (or similar technologies). It should support either iOS, Android or both. The app should have biometric authentication, end-to-end encryption, and other security features to protect user data. Users should be able to send text messages, images, and videos, and create or join group chats.
### Instructions for Flutter and Firebase as a reference:
### Instructions for Flutter and Firebase as a reference:
Set up a new Flutter project and integrate Firebase authentication and Cloud Firestore as a backend. Use the Firebase Console to create a new Firebase project, add appropriate configuration files.
Set up a new Flutter project and integrate Firebase authentication and Cloud Firestore as a backend. Use the Firebase Console to create a new Firebase project, add appropriate configuration files.
@ -18,8 +16,6 @@ To enable user authentication implement Firebase Authentication and secure sign-
Implement end-to-end encryption for secret chats using the encrypt or webcrypto packages. Use a symmetric encryption algorithm like RSA, and generate a new public and private key pair for each pair of users for each secret chat. The public keys should be securely shared between the sender and receiver.
Implement end-to-end encryption for secret chats using the encrypt or webcrypto packages. Use a symmetric encryption algorithm like RSA, and generate a new public and private key pair for each pair of users for each secret chat. The public keys should be securely shared between the sender and receiver.
### Implement the following features:
### Implement the following features:
- User profiles: Users should be able to create a profile with a profile picture, username, and other information.
- User profiles: Users should be able to create a profile with a profile picture, username, and other information.
@ -28,8 +24,6 @@ Implement end-to-end encryption for secret chats using the encrypt or webcrypto
- Messaging: Users should be able to send text messages, images, and videos, with features such as read receipts, typing indicators, and the ability to edit or delete messages.
- Messaging: Users should be able to send text messages, images, and videos, with features such as read receipts, typing indicators, and the ability to edit or delete messages.
- Secret chats: Users should be able to start encrypted one-on-one chats with the same functionality as regular chats with one exception: all messages have to be encrypted using an end-to-end algorithm.
- Secret chats: Users should be able to start encrypted one-on-one chats with the same functionality as regular chats with one exception: all messages have to be encrypted using an end-to-end algorithm.
### Bonus:
### Bonus:
Group messaging: Users should be able to create or join group chats with multiple users having at least the same functionality as regular chats.
Group messaging: Users should be able to create or join group chats with multiple users having at least the same functionality as regular chats.
@ -47,4 +41,4 @@ Push notifications: Users should receive notifications of new messages or friend
@ -21,7 +21,6 @@ To complete this exercise, you will need to do the following:
7. Use either the BLoC or Provider pattern to manage states within the app.
7. Use either the BLoC or Provider pattern to manage states within the app.
8. Test the app thoroughly to ensure that it is functioning correctly and all objectives have been met.
8. Test the app thoroughly to ensure that it is functioning correctly and all objectives have been met.
Remember to follow best practices for coding and app development, and be sure to document your code and any decisions made during the development process. Don't forget to consider user experience and design when creating the app, as a visually appealing and intuitive interface will be important for its success. Good luck!
Remember to follow best practices for coding and app development, and be sure to document your code and any decisions made during the development process. Don't forget to consider user experience and design when creating the app, as a visually appealing and intuitive interface will be important for its success. Good luck!
@ -6,8 +6,6 @@ Develop an app that will simulate a `real-time` stock market. You may use [Yahoo
Upon signing up, users will be given `1,000,000` fake dollars to use within the app for buying and holding stocks. The app should have the following features:
Upon signing up, users will be given `1,000,000` fake dollars to use within the app for buying and holding stocks. The app should have the following features:
- Login/logout functionality
- Login/logout functionality
- Ability to buy and hold stocks
- Ability to buy and hold stocks
- Historical charts of stock prices
- Historical charts of stock prices
@ -34,10 +32,8 @@ Make sure to manage states via any of the following patterns:
- A page displaying all purchased stocks
- A page displaying all purchased stocks
- A page displaying historical data for the chosen stock
- A page displaying historical data for the chosen stock
You should fetch all data in real-time and choose 20 stocks to monitor. The objectives of this exercise are to practice fetching data in real-time, visualizing custom widgets in real-time, and implementing authentication and authorization services.
You should fetch all data in real-time and choose 20 stocks to monitor. The objectives of this exercise are to practice fetching data in real-time, visualizing custom widgets in real-time, and implementing authentication and authorization services.
To complete this exercise, you will need to do the following:
To complete this exercise, you will need to do the following:
- Research the Yahoo API and determine how to use it to retrieve stock data.
- Research the Yahoo API and determine how to use it to retrieve stock data.
@ -52,8 +48,6 @@ To complete this exercise, you will need to do the following:
- Test the app thoroughly to ensure that it is functioning correctly and all objectives have been met.
- Test the app thoroughly to ensure that it is functioning correctly and all objectives have been met.
- Remember to follow best practices for coding and app development, and be sure to document your code and any decisions made during the development process. Good luck!
- Remember to follow best practices for coding and app development, and be sure to document your code and any decisions made during the development process. Good luck!
@ -26,7 +26,6 @@ To complete this exercise, you will need to do the following:
10. Test the game thoroughly to ensure that it is functioning correctly and all objectives have been met.
10. Test the game thoroughly to ensure that it is functioning correctly and all objectives have been met.
11. Remember to follow best practices for coding and game development, and be sure to document your code and any decisions made during the development process. Good luck!
11. Remember to follow best practices for coding and game development, and be sure to document your code and any decisions made during the development process. Good luck!
Some additional considerations for this exercise might include:
Some additional considerations for this exercise might include:
1. Adding a user interface (UI) to the game, such as buttons for moving the tiles and displaying the current and best scores.
1. Adding a user interface (UI) to the game, such as buttons for moving the tiles and displaying the current and best scores.
@ -35,7 +34,6 @@ Some additional considerations for this exercise might include:
4. Adding support for different devices and screen sizes, such as tablets or smartphones.
4. Adding support for different devices and screen sizes, such as tablets or smartphones.
5. By taking these additional factors into account, you can create a more polished and enjoyable version of the "2048" game.
5. By taking these additional factors into account, you can create a more polished and enjoyable version of the "2048" game.