Skip to content

Commit

Permalink
Merge pull request #8 from D-extremity/backend
Browse files Browse the repository at this point in the history
app completed
  • Loading branch information
D-extremity authored Oct 30, 2023
2 parents 9737bc4 + 7270a6b commit f7c7f50
Show file tree
Hide file tree
Showing 41 changed files with 263 additions and 70 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/firebase-hosting-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools

name: Deploy to Firebase Hosting on merge
'on':
push:
branches:
- main
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm ci && npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_CHAT_APP_F653C }}'
channelId: live
projectId: chat-app-f653c
17 changes: 17 additions & 0 deletions .github/workflows/firebase-hosting-pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools

name: Deploy to Firebase Hosting on PR
'on': pull_request
jobs:
build_and_preview:
if: '${{ github.event.pull_request.head.repo.full_name == github.repository }}'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm ci && npm run build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_CHAT_APP_F653C }}'
projectId: chat-app-f653c
33 changes: 33 additions & 0 deletions Y/404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Page Not Found</title>

<style media="screen">
body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; }
#message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px 16px; border-radius: 3px; }
#message h3 { color: #888; font-weight: normal; font-size: 16px; margin: 16px 0 12px; }
#message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; }
#message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;}
#message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; }
#message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; }
#message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); }
#load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; }
@media (max-width: 600px) {
body, #message { margin-top: 0; background: white; box-shadow: none; }
body { border-top: 16px solid #ffa100; }
}
</style>
</head>
<body>
<div id="message">
<h2>404</h2>
<h1>Page Not Found</h1>
<p>The specified file was not found on this website. Please check the URL for mistakes and try again.</p>
<h3>Why am I seeing this?</h3>
<p>This page was generated by the Firebase Command-Line Interface. To modify it, edit the <code>404.html</code> file in your project's configured <code>public</code> directory.</p>
</div>
</body>
</html>
89 changes: 89 additions & 0 deletions Y/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome to Firebase Hosting</title>

<!-- update the version number as needed -->
<script defer src="/__/firebase/10.5.2/firebase-app-compat.js"></script>
<!-- include only the Firebase features as you need -->
<script defer src="/__/firebase/10.5.2/firebase-auth-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-database-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-firestore-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-functions-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-messaging-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-storage-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-analytics-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-remote-config-compat.js"></script>
<script defer src="/__/firebase/10.5.2/firebase-performance-compat.js"></script>
<!--
initialize the SDK after all desired features are loaded, set useEmulator to false
to avoid connecting the SDK to running emulators.
-->
<script defer src="/__/firebase/init.js?useEmulator=true"></script>

<style media="screen">
body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; }
#message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px; border-radius: 3px; }
#message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; }
#message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;}
#message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; }
#message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; }
#message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); }
#load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; }
@media (max-width: 600px) {
body, #message { margin-top: 0; background: white; box-shadow: none; }
body { border-top: 16px solid #ffa100; }
}
</style>
</head>
<body>
<div id="message">
<h2>Welcome</h2>
<h1>Firebase Hosting Setup Complete</h1>
<p>You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!</p>
<a target="_blank" href="https://firebase.google.com/docs/hosting/">Open Hosting Documentation</a>
</div>
<p id="load">Firebase SDK Loading&hellip;</p>

<script>
document.addEventListener('DOMContentLoaded', function() {
const loadEl = document.querySelector('#load');
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
// // The Firebase SDK is initialized and available here!
//
// firebase.auth().onAuthStateChanged(user => { });
// firebase.database().ref('/path/to/ref').on('value', snapshot => { });
// firebase.firestore().doc('/foo/bar').get().then(() => { });
// firebase.functions().httpsCallable('yourFunction')().then(() => { });
// firebase.messaging().requestPermission().then(() => { });
// firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { });
// firebase.analytics(); // call to activate
// firebase.analytics().logEvent('tutorial_completed');
// firebase.performance(); // call to activate
//
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥

try {
let app = firebase.app();
let features = [
'auth',
'database',
'firestore',
'functions',
'messaging',
'storage',
'analytics',
'remoteConfig',
'performance',
].filter(feature => typeof app[feature] === 'function');
loadEl.textContent = `Firebase SDK loaded with ${features.join(', ')}`;
} catch (e) {
console.error(e);
loadEl.textContent = 'Error loading the Firebase SDK, check the console.';
}
});
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:label="chatapp"
android:label="EchoLink"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
Expand Down
6 changes: 6 additions & 0 deletions android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/>
</adaptive-icon>
Binary file modified android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions database.rules.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": false,
".write": false
}
}
2 changes: 1 addition & 1 deletion lib/pages/homepage.dart
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class _HomePageState extends State<HomePage> {
stream: FirebaseFirestore.instance.collection('users').snapshots(),
builder: (context, snapshot) {
if (snapshot.hasError) {
return const CircularProgressIndicator();
return const SizedBox(height: 120,width: 120,child: CircularProgressIndicator());
}
if (snapshot.hasData) {
// print("**************");
Expand Down
133 changes: 68 additions & 65 deletions lib/pages/messaging.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,68 +52,69 @@ class _MessagingState extends State<Messaging> {
),
body: Padding(
padding: const EdgeInsets.only(right: 8, left: 8),
child: ListView(children: [
Container(
height: size.height * 0.75,
width: double.infinity,
// ! child: , Column will come here to show chats
// color: Colors.deepPurple.shade200.withOpacity(0.2),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Colors.deepPurple.withOpacity(0.2),
Colors.deepPurpleAccent.withOpacity(0.2),
const Color.fromARGB(255, 208, 5, 244).withOpacity(0.1),
const Color.fromARGB(255, 210, 13, 228).withOpacity(0.1),
Colors.pink.withOpacity(0.2),
])),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: _buildMessageList(size))
// ChatWidget(
// size: size,
// isMyChat: false,
// chat: " Satyam is my name heres the first chat",
// ),
],
child: ListView(
children: [
Container(
height: size.height * 0.75,
width: double.infinity,
// ! child: , Column will come here to show chats
// color: Colors.deepPurple.shade200.withOpacity(0.2),
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Colors.deepPurple.withOpacity(0.2),
Colors.deepPurpleAccent.withOpacity(0.2),
const Color.fromARGB(255, 208, 5, 244).withOpacity(0.1),
const Color.fromARGB(255, 210, 13, 228).withOpacity(0.1),
Colors.pink.withOpacity(0.2),
])),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(child: _buildMessageList(size))
// ChatWidget(
// size: size,
// isMyChat: false,
// chat: " Satyam is my name heres the first chat",
// ),
],
),
),
SizedBox(
height: size.height * 0.05,
),
),
SizedBox(
height: size.height * 0.05,
),
Align(
alignment: Alignment.bottomCenter,
child: TextField(
onTapOutside: (event) =>
FocusScope.of(context).requestFocus(FocusNode()),
style: const TextStyle(fontSize: 20),
controller: _messageController,
canRequestFocus: true,
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(
Icons.send,
size: 40,
color: Colors.blueGrey.shade900,
Align(
alignment: Alignment.bottomCenter,
child: TextField(
onTapOutside: (event) =>
FocusScope.of(context).requestFocus(FocusNode()),
style: const TextStyle(fontSize: 20),
controller: _messageController,
canRequestFocus: true,
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(
Icons.send,
size: 40,
color: Colors.blueGrey.shade900,
),
onPressed: () {
sendMessage();
}, //! send chat
),
onPressed: () {
sendMessage();
}, //! send chat
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
),
fillColor: Colors.deepPurple,
filled: true,
hintText: "Yeah , why not..",
),
fillColor: Colors.deepPurple,
filled: true,
hintText: "Yeah , why not..",
),
),
),

]),
],
),
),
));
}
Expand All @@ -128,12 +129,13 @@ class _MessagingState extends State<Messaging> {
return Text("Error : ${snapshot.error}");
}
if (snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
return const SizedBox(height: 10,width: 10,child: CircularProgressIndicator());
}

return ListView(
reverse: true,
children: snapshot.data!.docs
.map((document) => _buildMessageItem(document,size))
.map((document) => _buildMessageItem(document, size))
.toList(),
);
});
Expand All @@ -148,11 +150,12 @@ class _MessagingState extends State<Messaging> {
bool isMyChat =
(data['senderId'] == FirebaseAuth.instance.currentUser!.uid.toString());
return ChatWidget(
size: size,
chat: data['message'],
isMyChat: isMyChat,
alignment: alignment,
otherPersonName: widget.otherPersonName,
senderName: "You",);
size: size,
chat: data['message'],
isMyChat: isMyChat,
alignment: alignment,
otherPersonName: widget.otherPersonName,
senderName: "You",
);
}
}
Binary file added web/favicon.ico
Binary file not shown.
Binary file removed web/favicon.png
Binary file not shown.
Binary file modified web/icons/Icon-192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified web/icons/Icon-512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed web/icons/Icon-maskable-192.png
Binary file not shown.
Binary file removed web/icons/Icon-maskable-512.png
Binary file not shown.
18 changes: 18 additions & 0 deletions web/icons/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Add this to your HTML <head>:

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">

Add this to your app's manifest.json:

...
{
"icons": [
{ "src": "/favicon.ico", "type": "image/x-icon", "sizes": "16x16 32x32" },
{ "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" },
{ "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" },
{ "src": "/icon-192-maskable.png", "type": "image/png", "sizes": "192x192", "purpose": "maskable" },
{ "src": "/icon-512-maskable.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" }
]
}
...
Binary file added web/icons/apple-touch-icon.png
Binary file added web/icons/favicon.ico
Binary file not shown.
Binary file added web/icons/icon-192-maskable.png
Binary file added web/icons/icon-512-maskable.png
6 changes: 3 additions & 3 deletions web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@

<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">
<meta name="description" content="Echo Link is a Chat App">

<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="chatapp">
<meta name="apple-mobile-web-app-title" content="EchoLink">
<link rel="apple-touch-icon" href="icons/Icon-192.png">

<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<link rel="icon" type="image/png" href="favicon.ico"/>

<title>chatapp</title>
<link rel="manifest" href="manifest.json">
Expand Down

0 comments on commit f7c7f50

Please sign in to comment.