cofounderella/README.md

145 lines
7.4 KiB
Markdown

# Cofounderella
This Flutter application helps entrepreneurs find the right co-founders who complement their skills and also share their interests and business goals. Whether you are looking for a tech expert, a marketing guru, or a visionary partner. This app aims to help you finding a perfect co-founder to bring your startup ideas to life.
## Features
- **Matchmaking:** Swipe through potential co-founders inorder to find a match.
- **View profiles:** Browse through all your swiped or matched profiles.
- **Chat:** In-app messaging to communicate with potential co-founders and discuss your ideas and vision without revealing personal contact details.
- **Profile Creation:** Create and update your profile to present yourself attractively to others.
- **Dark Mode Support**: Toggle between a light and a dark theme for a personalized app experience.
## Screenshots
![Welcome screen](lib/assets/screenshots/welcome.png)
![Home screen](lib/assets/screenshots/home.png)
![Matching screen: Swipe left](lib/assets/screenshots/swipe_left.png)
![Matching screen: Swipe right](lib/assets/screenshots/swipe_right.png)
![User profile](lib/assets/screenshots/user_info.png)
![Chat](lib/assets/screenshots/chat.png)
![Chat darkmode](lib/assets/screenshots/chat_dark.png)
## Getting Started
### Prerequisites
- [Flutter SDK](https://flutter.dev/docs/get-started/install)
- [Android Studio](https://developer.android.com/studio) or [Xcode](https://developer.apple.com/xcode/) (for iOS development)
- A code editor like [VS Code](https://code.visualstudio.com/) or Android Studio
### Installation
1. **Clone the repository**
2. **Install dependencies:**
```bash
flutter pub get
```
3. **Run the app:**
```bash
flutter run
```
### Folder Structure
- **lib/**: Contains the main code for the application.
- **assets/**: Icons and other assets.
- **components/**: Reusable widgets.
- **forms/**: UI forms.
- **models/**: Data models.
- **pages/**: UI screens.
- **services/**: Backend and API services.
- **settings/**: Settings provider.
- **themes/**: Theme provider.
- **utils/**: Utility classes and functions.
- **main.dart**: Entry point of the application.
## Technical Information
### Dependencies
This project uses the following external packages:
- [expandable_text](https://pub.dev/packages/expandable_text): Widget that only shows the first lines of a text and adds a link to expand the full text.
- [flutter_svg](https://pub.dev/packages/flutter_svg): An SVG rendering and widget library for Flutter, which allows painting and displaying Scalable Vector Graphics 1.1 files.
- [geocoding](https://pub.dev/packages/geocoding): A Flutter Geocoding plugin which provides easy geocoding and reverse-geocoding features.
- [geolocator](https://pub.dev/packages/geolocator): Flutter geolocation plugin which provides easy access to platform specific location services.
- [image_cropper](https://pub.dev/packages/image_cropper): A Flutter plugin for cropping images.
- [image_picker](https://pub.dev/packages/image_picker): Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.
- [osm_nominatim](https://pub.dev/packages/osm_nominatim): A library to perform OSM Nominatim searches also supporting reverse searches.
- [percent_indicator](https://pub.dev/packages/percent_indicator): Library that allows you to display progress widgets based on percentage, can be Circular or Linear, you can also customize it to your needs.
- [shared_preferences](https://pub.dev/packages/shared_preferences): Flutter plugin for reading and writing simple key-value pairs.
- [swipable_stack](https://pub.dev/packages/swipable_stack): A widget for stacking cards, which users can swipe horizontally and vertically with beautiful animations like Tinder.
- [url_launcher](https://pub.dev/packages/url_launcher): Flutter plugin for launching a URL.
- [flutter_local_notifications](https://pub.dev/packages/flutter_local_notifications): A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform..
Using [**Firebase**](https://firebase.google.com/) as the backend platform, this project also uses the following plugins:
- [cloud_firestore](https://pub.dev/packages/cloud_firestore): Flutter plugin for Cloud Firestore, a cloud-hosted, noSQL database.
- [firebase_auth](https://pub.dev/packages/firebase_auth): Flutter plugin for Firebase Auth, enabling authentication.
- [firebase_core](https://pub.dev/packages/firebase_core): Flutter plugin for Firebase Core, enabling connecting to multiple Firebase apps.
- [firebase_storage](https://pub.dev/packages/firebase_storage): Flutter plugin for Firebase Cloud Storage, a simple object storage service.
In addition to the above, this project also uses the following **optional** packages:
- [flutter_launcher_icons](https://pub.dev/packages/flutter_launcher_icons): A package which simplifies the task of updating your Flutter app's launcher icon.
### Supported Platforms
This project was developed on Windows using Flutter version 3.22.1 and Dart version 3.4.1.
It has been tested and is operational on both **Android** and **Web** platforms.
Other platforms, such as iOS, have not yet been tested. It might work on iOS without any changes, but this has not been confirmed.
## Using the App
Due to the nature of this project, an **online connection is required**.
1. Register or Login
2. Fill out your profile information
- Setting your location works best using the Current Position feature. This feature requires temporary access to the device's GPS services.
- You can also enter a location manually by searching either by textual location or by coordinates.
Here are three examples of what the input text could look like:
```bash
Heidelberg
Mannheim Glücksteinallee
76133 Karlsruhe
```
The input format to search by coordinates is ```Latitude, Longitude```. Here are two examples of how to input the coordinates:
```bash
49.46997, 8.482
-19.03, -65.25
```
The search results may not always be very accurate. If no results are found for your search input, please check your input or try a different search term.
3. Swipe through user profiles
- In the profile overview, you can swipe other users' profiles to the right (like), left (dislike), or up (skip, to decide later).
4. Connect with your matches through chat.
- Once you match with other users, you can chat with them to get to know each other better or exchange personal information.
## Android Binary
To quickly get started on Android, you can directly download the current APK file of this app from [here](https://clousi.hs-mannheim.de/index.php/s/KLK42o3zT3abnkb).
Since the binary is unsigned, it is highly recommended to verify its integrity by comparing the checksum before installing it on your device.
### Checksums
Filename : **cofounderella-v1.0.5-240816.apk**
- MD5 : ```39d032a3c38775f41b058d67d4c8ff20```
- SHA-1 : ```d3f3a4fecfee8620aedc4b8177bcd0c320db035e```
- SHA-256 : ```781eff9d1904ef9a0341383ff79b2be0c5e6decbc849859173eff4c5206af365```
- SHA-512 : ```3cc065841fe2951a6ebe8dbe3a46ae617f6bb9576b5a2daa7b2aa0a371721349f2576f5e354cb5a3d357137eb0bb98d6a9a9d20daddb26713969f8d3de8b2bea```
## Contact
If you have any questions or suggestions, feel free to reach out to me at [1024481@stud.hs-mannheim.de](mailto:1024481@stud.hs-mannheim.de).
Happy matching!