Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .metadata
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3"
channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: android
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: ios
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: linux
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: macos
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: web
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
- platform: windows
create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3
base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
60 changes: 0 additions & 60 deletions GSOC/2022/ManavSarkar.md

This file was deleted.

67 changes: 67 additions & 0 deletions GSOC/2024/BhavikMangla.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Peer-to-Peer Messaging Application GSoC 2024

## Chosen Goals
1. Implement on-device user authentication for enhanced security.
2. Complete integration of RSA encryption to secure messaging.
3. Enable seamless sending and viewing of files, images, audio, and video.
4. Enhance the user interface to support intuitive file viewing.
5. Update project dependencies for improved performance and stability.

## Project Overview
The Peer-to-Peer messaging application aims to create a decentralized messaging platform, eliminating reliance on
centralized servers vulnerable to privacy breaches. By leveraging device networking capabilities, the app ensures
robust communication even in disaster-prone or remote areas with weak cellular connectivity.

## Detailed Progress and Achievements

### Security Enhancements
- **User Authentication:**
- Implemented password and fingerprint locks for on-device user authentication using the `local_auth` package.
- Ensured secure access to the app, enhancing user privacy and data protection.

- **RSA Encryption:**
- Integrated RSA encryption for secure messaging between connected clients.
- Utilized libraries like `rsa_encrypt`, `asn1lib`, `dart:typed_data`, `dart:convert`, and `pointycastle` for
key generation, encryption, and parsing.
- Stored and transmitted public and private keys securely using `flutter_secure_storage` and `flutter_nearby_connections`.

### File Handling
- **File Sharing:**
- Implemented secure file sharing functionality for sending files, images, audio, and video between users.
- Ensured encryption of transmitted files to prevent unauthorized access.
- Used `file_picker`, `open_file_x`, `permission_handler`, and `path_provider` for file operations.

- **File Viewing:**
- Developed a user-friendly UI for in-app file previews and viewing.
- Supported all file types for seamless user experience within the chat interface.

### UI Enhancements
- **Chat Interface:**
- Enhanced the chat UI by adding date indicators and chat bubbles for a more intuitive messaging experience.
- Created a clean and organized UI specifically for viewing shared files within the chat.

### Dependencies and Testing
- **Dependency Management:**
- Updated all project dependencies and packages to their latest versions.
- Ensured compatibility and stability across multiple devices and platforms through rigorous testing.

## Next Steps
- **Finalize RSA Encryption for Files:**
- Complete the implementation of RSA encryption specifically for file sharing to bolster security.

- **UI Refinements:**
- Continue refining the user interface based on user feedback to improve usability and aesthetics.

- **Testing and Validation:**
- Conduct comprehensive testing to validate the app's security, performance, and user experience.

- **Prepare for App Publication:**
- Prepare the app for publication on the Google Play Store and Apple App Store.
- Ensure compliance with all guidelines and requirements for app submission.

## Conclusion
The progress achieved during GSoC 2024 has significantly enhanced the security, functionality, and user experience
of the Peer-to-Peer messaging application. By implementing robust authentication mechanisms, advanced encryption techniques,
and seamless file sharing capabilities, the app is well-positioned to offer users a secure and reliable communication platform.
Moving forward, the focus will be on finalizing remaining features, refining the UI, conducting thorough testing, and
preparing for app publication to reach a broader audience.
28 changes: 28 additions & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
Loading