Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
0ceb68d
init web
marXus-3D Nov 8, 2024
8978e3b
map start
marXus-3D Nov 9, 2024
82be227
tailwind init
marXus-3D Nov 9, 2024
e835707
working map
marXus-3D Nov 9, 2024
71c2d97
working prototype
marXus-3D Nov 10, 2024
274b33c
auth start
marXus-3D Nov 10, 2024
9a273d8
side bar with the floating button added
marXus-3D Nov 10, 2024
4bff3b9
Merge branch 'AfriGebeta:main' into main
marXus-3D Nov 11, 2024
b173a8e
adding establishment ui added
marXus-3D Nov 11, 2024
082dffe
Merge branch 'main' of https://github.com/marXus-3D/GebetaMaps_Hackathon
marXus-3D Nov 11, 2024
cc23f80
firebase auth
raniabdela Nov 11, 2024
575885d
Merge branch 'main' of https://github.com/marXus-3D/GebetaMaps_Hackathon
raniabdela Nov 11, 2024
f79c4e9
signin and signup func
raniabdela Nov 11, 2024
e90a672
start
marXus-3D Nov 11, 2024
8e05300
fixes
marXus-3D Nov 11, 2024
8b8e2dd
config fix
marXus-3D Nov 11, 2024
c248472
working auth
marXus-3D Nov 11, 2024
e6322b6
New changes
YonAndualem Nov 11, 2024
d91a426
added login
marXus-3D Nov 11, 2024
9ba2751
storing user info
raniabdela Nov 11, 2024
435233f
loads user from firestore @raniabdela implementation
marXus-3D Nov 11, 2024
bca3c2c
Merge branch 'main' into testing
marXus-3D Nov 11, 2024
e1b407b
Merge pull request #1 from marXus-3D/testing
marXus-3D Nov 11, 2024
ae6494f
panning animation for the map
marXus-3D Nov 11, 2024
e3853a3
working geocoding
marXus-3D Nov 11, 2024
98b314b
half done geohash
marXus-3D Nov 12, 2024
2f936bf
Merge branch 'main' into Layout
raniabdela Nov 12, 2024
2c8e2c8
Merge pull request #2 from marXus-3D/Layout
raniabdela Nov 12, 2024
a473476
layout fix
raniabdela Nov 12, 2024
de279fc
Merge branch 'main' of https://github.com/marXus-3D/GebetaMaps_Hackathon
marXus-3D Nov 12, 2024
a110d0e
Add user details to EstablishmentPopup and MapComponent; implement Re…
marXus-3D Nov 12, 2024
f53813d
working image uploader
marXus-3D Nov 13, 2024
c7affca
working review viewer
marXus-3D Nov 13, 2024
3eb0a53
fully working review with images
marXus-3D Nov 13, 2024
604201e
added event popup
marXus-3D Nov 14, 2024
8748204
some fix
marXus-3D Nov 20, 2024
4416a62
bunch of fixes
marXus-3D Nov 20, 2024
229519e
color fix
marXus-3D Nov 20, 2024
0f8083d
refactor SidePanel component: streamline place filtering and update d…
marXus-3D Nov 20, 2024
089fc4e
fix
marXus-3D Nov 21, 2024
b248f4b
google fix
marXus-3D Nov 21, 2024
a4f9f34
add routing and 404 page: implement React Router and create NotFoundP…
marXus-3D Nov 21, 2024
2e842b6
refactor Layout and SidePanel components: comment out Header and Foot…
marXus-3D Nov 21, 2024
99eaed0
refactor EstablishmentPopup and ReviewPopUp components: update review…
marXus-3D Nov 21, 2024
60d8144
documentation
marXus-3D Nov 21, 2024
9497ee6
Readme Update
YonAndualem Nov 23, 2024
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
Binary file added Local Lens Overview.pdf
Binary file not shown.
103 changes: 53 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,77 @@
# Gebeta Maps Hackathon
# Local Lens | Gebeta Maps Hackathon

![Gebeta Maps Logo](./assets/g-wide.svg)
## Project Description
Local Lens is a Minimum Viable Product (MVP) web application designed to empower users to discover and review local businesses. It features an intuitive user experience, seamless authentication, and OpenStreet Maps as the primary interface.

Create innovative products using Gebeta Maps and win amazing prizes! This week long online hackathon challenges developers to build creative solutions using Gebeta Maps' powerful mapping infrastructure.

## 🗓️ Important Dates
![Logo](./assets/logo.png)
![Logo](./assets/g-wide.svg)

- **Registration Opens**: Oct 27th, 2024
- **Registration Ends**: Nov 6th, 2024
- **Hackathon Starts**: Nov 7th, 2024
- **Project Submission Deadline**: Nov 14th, 2024
- **Winners announced** + ✨ **Prizes** ✨ : Nov 16/17th, 2024
---

## 🎯 About the Hackathon
## Demo
You can access the live demo of Local Lens [here](https://local-lens-xi.vercel.app/).

Join us for an exciting week long online hackathon where you'll leverage Gebeta Maps to create innovative products. We provide all the necessary tooling and infrastructure - you bring your creativity and skills!

### Key Features
- 🚀 1 week to develop and submit your demo
- 🏆 Win prizes and get featured on our blog
- 🛠️ All necessary tools and infrastructure provided
- 💡 Build with Gebeta Maps' powerful mapping platform

## 🏆 Prizes

1. **First Place**
- Featured on Gebeta Maps Blog
- 6 Months Free Hosting
**Important**:
Users must provide their full name during account creation for authentication purposes.

2. **Second Place**
- 3 Months Free Hosting
---

3. **Third Place**
- 1 Month Free Hosting

In addition to AMAZING cash prizes!

## 📋 Requirements
### Focus Areas:
- **User Engagement**: Account creation, following creators, and posting community ratings and photos.
- **Creator Empowerment**: Sharing expertise, detailed reviews, and collaboration with other creators.
- **Business Discovery**: Helping users find local businesses tailored to their needs and preferences.

### Technical Requirements
- Must use Gebeta Maps API
- Projects must be original work
- Code should be built on a fork of this template repo and submitted as a PR
- Demo must be accessible online
---

### Team Requirements
- Individual or team participation allowed
- Maximum team size: `NA` (go nuts)
- Participants must register before the deadline
## Key Features

## 🛠️ Getting Started
### User Features
- **Account Creation**: Register using Google or email.
- **Following Creators**: Follow favorite creators for updates.
- **Community Ratings**: Post text reviews and star ratings for businesses.
- **Photo Sharing**: Share photos of businesses (quality-reviewed).

1. **Register**
- Sign up [here](https://hackathon.gebeta.app/register)
- Form/join a team (optional)
### Creator Features
- **Account Creation**: Register using Google or email.
- **Following Creators**: Stay updated on trends by following others.
- **Detailed Reviews**: Post in-depth reviews, star ratings, and pricing details.
- **Photo Sharing**: Share photos of businesses.

2. **Access Resources**
- Get your API keys [TBD]
- Review documentation [here](https://gebeta.app/#/documentation)
### Map Features
- **Nearest Place Search**: Locate businesses nearby based on user location and search criteria.
- **Venue Information**: Display detailed venue information (address, phone number, ratings).
---

3. **Build & Submit**
- Clone this repository
- Develop your solution
- Open a pull request before the deadline (Nov 35, 2024)
## Technical Implementation
- **Authentication**: Seamless authentication via Google and email.
- **User Profiles**: Store user information (name, email, followed creators).
- **Content Creation & Sharing**: Enable posting of reviews, photos, and videos.
- **Content Moderation**: Review and filter user-generated content.
- **Map Integration**: Use Gebeta's API to display businesses on a map and search for nearby locations.
- **Email Notifications**: Notify business owners via SMTP when reviews are posted.

---

## Future Considerations
- **Video Reviews**: Support short video reviews by creators.
- **Real-Time Updates**: Implement live updates for reviews and ratings.
- **Social Features**: Add messaging and commenting.
- **Advanced Search Filters**: Expand search criteria options.
- **Personalized Recommendations**: Leverage AI to tailor recommendations.

## 📞 Support
---

- Email: [info@gebeta.app]
## Contribution to Gebeta Maps
- **Business Data**: Provide location and review data for creating custom maps.
- **Geocoding Support**: Offer updated business locations for geocoding improvements.
- **Business Images**: Deliver up-to-date images of businesses and locations.
- **Review System**: Integrate a review system into Gebeta’s maps.

---

Organized by Gebeta Maps © 2023
_Local Lens aims to bridge the gap between users, creators, and local businesses, creating a comprehensive platform for discovery and engagement._
Binary file added assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions local_lens/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/

# Symbolication related
app.*.symbols

# Obfuscation related
app.*.map.json

# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release
45 changes: 45 additions & 0 deletions local_lens/.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: "68bfaea224880b488c617afe30ab12091ea8fa4e"
channel: "stable"

project_type: app

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

# 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'
16 changes: 16 additions & 0 deletions local_lens/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# local_lens

A new Flutter project.

## Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)

For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
28 changes: 28 additions & 0 deletions local_lens/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
13 changes: 13 additions & 0 deletions local_lens/android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks
67 changes: 67 additions & 0 deletions local_lens/android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

android {
namespace "com.example.local_lens"
compileSdk flutter.compileSdkVersion
ndkVersion flutter.ndkVersion

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.local_lens"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}

flutter {
source '../..'
}

dependencies {}
7 changes: 7 additions & 0 deletions local_lens/android/app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
44 changes: 44 additions & 0 deletions local_lens/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:label="local_lens"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility?hl=en and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.

In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
</queries>
</manifest>
Loading