Skip to content

Commit 52bd81c

Browse files
Merge pull request COS301-SE-2022#414 from COS301-SE-2022/Farai
🚀Hosted Chat
2 parents d1d2e1b + 580e123 commit 52bd81c

File tree

10 files changed

+40
-67
lines changed

10 files changed

+40
-67
lines changed

APIs/TutorMeChatAPI/Chat application server/Controllers/TestController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public TestController(IHubContext<ChatHub> hub)
1818
}
1919

2020
[HttpGet("[action]")]
21-
public async Task<IActionResult> SendMessage(string MessageText, int UserId, string UserName)
21+
public async Task<IActionResult> SendMessage(string MessageText, string UserId, string UserName)
2222
{
2323
MessageModel MessageModel = new MessageModel
2424
{

APIs/TutorMeChatAPI/Chat application server/Hubs/ChatHub.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,37 @@ namespace Chat_application_server.Hubs
77
{
88
public class ChatHub : Hub
99
{
10-
public async Task SendMessage(string UserName, int RandomUserId, string Message)
10+
public async Task SendMessage(string UserName, string UserId, string Message)
1111
{
1212
MessageModel MessageModel = new MessageModel
1313
{
1414
CreateDate = DateTime.Now,
1515
MessageText = Message,
16-
UserId = RandomUserId,
16+
UserId = UserId,
1717
UserName = UserName
1818
};
1919
await Clients.All.SendAsync("ReceiveMessage", MessageModel);
2020
}
2121

22-
public async Task JoinUSer(string userName,int userId)
22+
public async Task JoinUSer(string userName,string userId)
2323
{
2424
MessageModel MessageModel = new MessageModel
2525
{
2626
CreateDate = DateTime.Now,
2727
MessageText = userName + " joined chat",
28-
UserId = 0,
28+
UserId = "0",
2929
UserName = "system"
3030
};
3131
await Clients.All.SendAsync("ReceiveMessage", MessageModel);
3232
}
3333

34-
public Task JoinGroup(string groupName, string groupId, string userName,int userId)
34+
public Task JoinGroup(string groupName, string groupId, string userName,string userId)
3535
{
3636
MessageModel MessageModel = new MessageModel
3737
{
3838
CreateDate = DateTime.Now,
3939
MessageText = userName + " joined " + groupName,
40-
UserId = 0,
40+
UserId = "0",
4141
UserName = "system"
4242
};
4343
Clients.Group(groupId).SendAsync("ReceiveMessage", MessageModel);
@@ -51,7 +51,7 @@ public Task JoinChat(string receiverName, string userId, string receiverID , str
5151
{
5252
CreateDate = DateTime.Now,
5353
MessageText = userName + " is online",
54-
UserId = 0,
54+
UserId = "0",
5555
UserName = "system"
5656
};
5757
string groupId = "";
@@ -68,7 +68,7 @@ public Task JoinChat(string receiverName, string userId, string receiverID , str
6868
return Groups.AddToGroupAsync(Context.ConnectionId, groupId);
6969
}
7070

71-
public Task SendMessageToChat(string userId, string receiverID, string UserName, int RandomUserId, string Message)
71+
public Task SendMessageToChat(string userId, string receiverID, string UserName, string Message)
7272
{
7373
string groupId = "";
7474
if (String.Compare(userId, receiverID, StringComparison.Ordinal) < 0)
@@ -83,19 +83,19 @@ public Task SendMessageToChat(string userId, string receiverID, string UserName,
8383
{
8484
CreateDate = DateTime.Now,
8585
MessageText = Message,
86-
UserId = RandomUserId,
86+
UserId = userId,
8787
UserName = UserName
8888
};
8989
return Clients.Group(groupId).SendAsync("ReceiveMessage", MessageModel);
9090
}
9191

92-
public Task SendMessageToGroup(string groupId, string UserName, int RandomUserId, string Message)
92+
public Task SendMessageToGroup(string groupId, string UserName, string UserId, string Message)
9393
{
9494
MessageModel MessageModel = new MessageModel
9595
{
9696
CreateDate = DateTime.Now,
9797
MessageText = Message,
98-
UserId = RandomUserId,
98+
UserId = UserId,
9999
UserName = UserName
100100
};
101101
return Clients.Group(groupId).SendAsync("ReceiveMessage", MessageModel);

APIs/TutorMeChatAPI/Chat application server/Models/MessageModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Chat_application_server.Models
44
{
55
public class MessageModel
66
{
7-
public int UserId { get; set; }
7+
public string UserId { get; set; }
88
public string UserName { get; set; }
99
public string MessageText { get; set; }
1010
public DateTime CreateDate { get; set; }

assets/User Manual TutorMe-4.pdf

6.66 KB
Binary file not shown.

lib/src/admin/admin.dart

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ class Admin extends StatelessWidget {
1919
@override
2020
Widget build(BuildContext context) {
2121
double widthOfScreen = MediaQuery.of(context).size.width;
22-
int crossAxis = 2;
23-
if (widthOfScreen < 500.0) {
22+
int crossAxis = 5;
23+
24+
if (widthOfScreen < 900.0 && widthOfScreen >= 500.0) {
25+
crossAxis = 3;
26+
} else if (widthOfScreen < 500.0) {
2427
crossAxis = 2;
2528
} else {
2629
crossAxis = 5;
@@ -337,7 +340,7 @@ class Admin extends StatelessWidget {
337340
children: <Widget>[
338341
Image.asset(
339342
"assets/Pictures/institution.png",
340-
width: 92,
343+
width: 60,
341344
),
342345
const SizedBox(
343346
height: 14,

lib/src/admin/admin_home.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:flutter/material.dart';
2-
import 'package:tutor_me/src/authenticate/register_step1.dart';
32
import '../../services/models/globals.dart';
43
import 'admin.dart';
4+
import 'login.dart';
55

66
class AdminHome extends StatefulWidget {
77
final Globals global;
@@ -25,7 +25,7 @@ class AdminHomeState extends State<AdminHome> {
2525
Navigator.push(
2626
context,
2727
MaterialPageRoute(
28-
builder: (context) => const RegisterStep1()));
28+
builder: (context) => const LoginAdmin()));
2929
},
3030
icon: Image.asset("assets/Pictures/TutorLogo.png", width: 30))
3131
],

lib/src/chat/one_to_one_chat.dart

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'dart:convert';
2-
import 'dart:math';
32
import 'dart:typed_data';
43

54
import 'package:flutter/material.dart';
@@ -44,14 +43,6 @@ class ChatState extends State<Chat> {
4443
void initState() {
4544
super.initState();
4645
openSignalRConnection();
47-
createRandomId();
48-
}
49-
50-
int currentUserId = 0;
51-
//generate random user id
52-
createRandomId() {
53-
Random random = Random();
54-
currentUserId = random.nextInt(999999);
5546
}
5647

5748
String removeMessageExtraChar(String userText) {
@@ -78,7 +69,6 @@ class ChatState extends State<Chat> {
7869
widget.globals.getUser.getId,
7970
widget.reciever.getId,
8071
widget.globals.getUser.getName,
81-
currentUserId,
8272
messageText
8373
]);
8474
messageTextController.text = "";
@@ -156,8 +146,8 @@ class ChatState extends State<Chat> {
156146
width: size.width,
157147
child: Column(
158148
children: [
159-
chatMessageWidget(
160-
chatListScrollController, messageModel, currentUserId),
149+
chatMessageWidget(chatListScrollController, messageModel,
150+
widget.globals.getUser.getId),
161151
chatTypeMessageWidget(messageTextController, submitMessageFunction)
162152
],
163153
),
@@ -168,8 +158,8 @@ class ChatState extends State<Chat> {
168158
//set url and configs
169159
final connection = HubConnectionBuilder()
170160
.withUrl(
171-
// 'http://tutormechatapi-prod.us-east-1.elasticbeanstalk.com/chatHub',
172-
'http://192.168.42.155:500/chatHub',
161+
'http://tutormechathub.us-east-1.elasticbeanstalk.com/chatHub',
162+
// 'http://192.168.42.155:500/chatHub',
173163
HttpConnectionOptions())
174164
.build();
175165

lib/src/models/message_model.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
class MessageModel {
2-
int? userId;
2+
String? userId;
33
String? userName;
44
String? messageText;
55
String? createDate;
@@ -11,7 +11,7 @@ class MessageModel {
1111
this.createDate,
1212
});
1313
MessageModel.fromJson(Map<String, dynamic> json) {
14-
userId = json["userId"]?.toInt();
14+
userId = json["userId"]?.toString();
1515
userName = json["userName"]?.toString();
1616
messageText = json["messageText"]?.toString();
1717
createDate = json["createDate"]?.toString();

lib/src/pages/chat_page.dart

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'dart:convert';
2-
import 'dart:math';
32

43
import 'package:provider/provider.dart';
54
import 'package:tutor_me/services/models/groups.dart';
@@ -38,14 +37,6 @@ class _ChatPageState extends State<ChatPage> {
3837
void initState() {
3938
super.initState();
4039
openSignalRConnection();
41-
createRandomId();
42-
}
43-
44-
int currentUserId = 0;
45-
//generate random user id
46-
createRandomId() {
47-
Random random = Random();
48-
currentUserId = random.nextInt(999999);
4940
}
5041

5142
String removeMessageExtraChar(String userText) {
@@ -71,7 +62,7 @@ class _ChatPageState extends State<ChatPage> {
7162
await connection.invoke('SendMessageToGroup', args: [
7263
widget.group.getId,
7364
widget.globals.getUser.getName,
74-
currentUserId,
65+
widget.globals.getUser.getId,
7566
messageText
7667
]);
7768
messageTextController.text = "";
@@ -91,10 +82,8 @@ class _ChatPageState extends State<ChatPage> {
9182
Color secondaryColor;
9283

9384
if (provider.themeMode == ThemeMode.dark) {
94-
9585
secondaryColor = colorLightGrey;
9686
} else {
97-
9887
secondaryColor = colorWhite;
9988
}
10089

@@ -107,8 +96,8 @@ class _ChatPageState extends State<ChatPage> {
10796
child: Column(
10897
children: [
10998
chatAppbarWidget(size, context, widget.moduleCode),
110-
chatMessageWidget(
111-
chatListScrollController, messageModel, currentUserId),
99+
chatMessageWidget(chatListScrollController, messageModel,
100+
widget.globals.getUser.getId),
112101
chatTypeMessageWidget(messageTextController, submitMessageFunction)
113102
],
114103
),
@@ -119,8 +108,8 @@ class _ChatPageState extends State<ChatPage> {
119108
//set url and configs
120109
final connection = HubConnectionBuilder()
121110
.withUrl(
122-
// 'http://tutormechatapi-prod.us-east-1.elasticbeanstalk.com/chatHub',
123-
'http://192.168.42.155:500/chatHub',
111+
'http://tutormechathub.us-east-1.elasticbeanstalk.com/chatHub',
112+
// 'http://192.168.42.155:500/chatHub',
124113
HttpConnectionOptions())
125114
.build();
126115

@@ -134,7 +123,7 @@ class _ChatPageState extends State<ChatPage> {
134123
widget.moduleCode,
135124
widget.group.getId,
136125
widget.globals.getUser.getName,
137-
currentUserId
126+
widget.globals.getUser.getId
138127
]);
139128
}
140129

lib/src/widgets/chat_message_list_widget.dart

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import 'package:tutor_me/src/colorpallete.dart';
2+
13
import '../models/message_model.dart';
24
import 'package:flutter/material.dart';
35

46
Widget chatMessageWidget(ScrollController chatListScrollController,
5-
List<MessageModel> messageModel, int currentUserId) {
7+
List<MessageModel> messageModel, String currentUserId) {
68
return Expanded(
79
child: Container(
810
color: Colors.white,
@@ -20,9 +22,9 @@ Widget chatMessageWidget(ScrollController chatListScrollController,
2022
));
2123
}
2224

23-
Widget chatItemWidget(MessageModel e, int currentUserId) {
25+
Widget chatItemWidget(MessageModel e, String currentUserId) {
2426
bool isMyChat = e.userId == currentUserId;
25-
return e.userId == 0
27+
return e.userId == "0"
2628
? systemMessageWidget(e.messageText!)
2729
: Padding(
2830
padding: const EdgeInsets.only(left: 12, right: 12),
@@ -53,19 +55,8 @@ Widget systemMessageWidget(String text) {
5355
);
5456
}
5557

56-
Widget userAvatar(int userId, String userName) {
57-
Color avatarColor = Colors.greenAccent;
58-
if (userId < 10000) {
59-
avatarColor = const Color(0xFFffadad);
60-
} else if (userId < 100000) {
61-
avatarColor = const Color(0xFFffd6a5);
62-
} else if (userId < 200000) {
63-
avatarColor = const Color(0xFFfdffb6);
64-
} else if (userId < 700000) {
65-
avatarColor = const Color(0xFFcaffbf);
66-
} else if (userId < 1000000) {
67-
avatarColor = Colors.blueAccent;
68-
}
58+
Widget userAvatar(String userId, String userName) {
59+
Color avatarColor = colorBlueTeal;
6960

7061
return Container(
7162
width: 40,

0 commit comments

Comments
 (0)