FINAL FINAL FINAL FULL DOC
FINAL FINAL FINAL FULL DOC
CHAPTER 1
INTRODUCTION
This wide range of features ensures that Talkaholic caters to a wide range of
clients, from individuals wanting a customised and creative chat experience to
businesses searching for sophisticated and efficient communication solutions.
Because it emphasises both individual and group interactions, it is the ideal platform
for a range of uses.
CHAPTER 2
FEASIBILITY STUDY
• Functional Feasibility
• Operational Feasibility
• Economical Feasibility
2.1FUNCTIONAL FEASIBILITY
This section evaluates whether the proposed features of the Talkaholic application can
be realistically developed and implemented using existing technology and tools.
2.1.4 AI Chatbot
• Feasibility: Leveraging API-based AI models (like OpenAI or Google Dialog flow)
makes chat bot integration possible.
• Challenges: Ensuring the chat bot delivers meaningful responses and handles a wide
range of user queries.
2.2OPERATIONAL FEASIBILITY
2.3ECONOMICAL FEASIBILITY
CHAPTER 3
SYSTEM SPECIFICATION
ADVANTAGES OF FIREBASE
• Reliable & Extensive Databases
• Fast & Safe Hosting
• Provides a Free Start to Newbies
• Google Analytics
• Firebase Cloud Messaging for Cross-Platform
SPREADSHEET
A spreadsheet is a computer program that can capture, display and manipulate data
arranged in rows and columns. Spreadsheets are one of the most popular tools available
with personal computers. A spreadsheet is generally designed to hold numerical data
and short text strings.
ADVANTAGES OF SPREADSHEETS
• Spreadsheets require minimal training.
• Spreadsheets are customizable.
• Spreadsheets can be more collaborative than other tools.
• It's easy to manipulate and analyze data.
15
CHAPTER 4
SYSTEM ANALYSIS
The existing applications generally include straightforward chat interfaces with limited
customization options, such as static themes or restricted file-sharing capabilities. Advanced
communication experiences like scheduling messages, converting text to PDFs, or adding
gamified interactions are either missing or require third-party tools, complicating the user
experience.
Moreover, these systems offer no mechanism to incorporate user moods into their
interfaces, limiting creativity and personalization. As a result, users seeking more diverse,
enjoyable communication tools often feel underwhelmed and unsupported.
16
The existing chat systems exhibit several drawbacks that reduce their appeal and fail to meet
modern user expectations. Key drawbacks include:
Addressing these drawbacks through advanced, user-centric features forms the core rationale
for developing Talkaholic Chat.
17
The system introduces creative features such as Timed Message Sending for scheduled
delivery, interactive Mini-Games, and Mood-Based Theme Customization, enabling users
to express themselves creatively. Additionally, tools for File Format Conversion and an AI
Chatbot add value by enhancing user productivity while incorporating an element of
playfulness.
Key functionalities include intuitive navigation, real-time chat options, interactive file-
sharing tools, and secure WhatsApp Payment Integration for accessing premium content.
This cross-platform application, built using the Flutter framework, ensures consistency
across Android and iOS devices.
• Innovative Features: Tools like "Timed Message Sending" and integrated mini-
games keep the platform engaging.
• Customization: Mood-based themes create a sense of individuality and offer better
user engagement.
• Cross-Platform Compatibility: Seamless performance across Android and iOS
broadens its appeal
.
This module encompasses the core messaging functionalities such as text and
multimedia messaging, real-time chats, and Timed Message Sending.
Productivity Module
Features include tools for converting text to PDFs and encrypting/decrypting text,
enhancing the platform’s utility for both casual users and professionals.
Entertainment Module
Mini-games such as word puzzles and encryption challenges are integrated to keep
users entertained within the app.
Customization Module
Mood-based themes, customizable fonts, and interactive user interfaces enable users
to personalize their chat environments.
AI Chatbot Module
CHAPTER 5
SYSTEM DESIGN
• Chat with Other Users: Engage with other registered users on the platform.
• Theme Customization: Personalize the interface by changing themes.
• Text and PDF Conversion: Convert text to PDF and extract text from PDF files.
• AI Chatbot: Interact with an AI chatbot for assistance or casual conversation.
• Message Encryption/Decryption: Securely send and receive messages using
encryption.
20
The diagram shows a chat system, Talkaholic Chat, linking User and WhatsApp.
LEVEL 1
CHAPTER 6
6.1. CONCLUSION
The Talkaholic Chat Application is a dynamic messaging platform designed to enhance digital
communication by integrating creativity, personalization, and efficiency. It offers real-time
messaging, multimedia sharing, and group chat functionalities, coupled with innovative features
like mood-based themes and timed message sending. Users can customize their chat experience
by choosing from a variety of themes that adjust based on mood or personal preferences, creating
a tailored and engaging environment. Additionally, interactive mini-games within the app allow
users to play with friends or during chats, encouraging social connection and making
conversations more lively.
One standout feature of Talkaholic is Text-to-PDF conversion tool, which allows users to
effortlessly turn chat conversations or personal notes into shareable PDF files. This functionality
supports customization, enabling users to format PDFs with personalized fonts and layout
options. It also integrates seamlessly with other features like reminders and scheduled message
delivery, offering a holistic approach to both productivity and personal engagement.
Furthermore, the inclusion of an AI-powered chatbot helps improve user experience by acting as
both an intelligent conversational partner and a virtual assistant, capable of setting reminders,
managing tasks, and providing content recommendations based on user preferences.
With cross-platform compatibility for both iOS and Android, Talkaholic ensures a consistent
and smooth experience across devices. The app emphasizes security and privacy with end-to-end
encryption, data protection features, and AI-based moderation to ensure a safe communication
space. The combination of fun and functional features, like mood-based theming, interactive
games, AI chatbot assistance, and productivity tools, positions Talkaholic as a versatile and
innovative platform ideal for users who value both enjoyment and efficiency in their digital
interactions. Whether for personal chat or business communication, it delivers a comprehensive
and engaging messaging experience.
23
Finally, the scheduled message feature will take communication convenience to the
next level. Users will be able to compose messages and schedule them to be sent at a specific
time, which is perfect for sending reminders, surprise messages, or communicating across
different time zones without the need for immediate interaction. This feature is highly practical
for both personal use—such as sending birthday wishes or important reminders—and
professional use, ensuring that business communications are timely and well-organized.
Together, the introduction of these features will transform Talkaholic into a more robust and
versatile messaging platform, balancing real-time interaction with efficiency, flexibility, and
enhanced communication capabilities.
24
APPENDICES
A.SAMPLE CODING
Main.dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'utility.dart';
import 'themes/theme_provider.dart'; // Ensure correct import
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => ThemeProvider(),
child: Consumer<ThemeProvider>(
builder: (context, themeProvider, child) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
useMaterial3: true,
colorScheme: themeProvider.lightScheme,
scaffoldBackgroundColor: themeProvider.lightScheme.background),
darkTheme: ThemeData(
useMaterial3: true,
colorScheme: themeProvider.darkScheme,
scaffoldBackgroundColor: themeProvider.darkScheme.background),
themeMode: themeProvider.themeMode,
home: HomePage(),
)
25
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:math';
void main() {
runApp(WordDashApp());
}
class WordDashApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: WordDashGame(),
);
}
}
class WordDashGame extends StatefulWidget {
@override
_WordDashGameState createState() => _WordDashGameState();
}
class _WordDashGameState extends State<WordDashGame> {
// List of words with their hints and categories
final List<Map<String, String>> masterWordList = [
{"word": "apple", "hint": "A red or green fruit", "category": "Fruit"},
{"word": "banana", "hint": "A yellow fruit", "category": "Fruit"},
{"word": "zebra", "hint": "An animal with stripes", "category": "Animal"},
{"word": "ocean", "hint": "Large body of water", "category": "Nature"},
{"word": "planet", "hint": "A celestial body orbiting a star", "category": "Space"},
{"word": "python", "hint": "A programming language", "category": "Technology"},
{"word": "violin", "hint": "A string instrument", "category": "Music"},
{"word": "chocolate", "hint": "A sweet brown treat", "category": "Food"},
{"word": "volcano", "hint": "A mountain that erupts", "category": "Nature"},
{"word": "parrot", "hint": "A colorful talking bird", "category": "Animal"},
26
isHintUsed = false;
timer = 30; // Reset the timer for the new word
});
} else {
setState(() {
gameOver = true;
});
countdownTimer.cancel();
}
}
// Generate underscores for the word
String _getUnderscoreWord(String word) {
return List.generate(word.length, (index) => "_").join(" ");
}
void checkGuess(String guess) {
if (guess == currentWord) {
setState(() {
points += 10;
currentWordIndex++;
startNewWord();
});
} else {
setState(() {
hearts -= 1;
if (hearts <= 0) {
gameOver = true;
countdownTimer.cancel();
}
});
}
_controller.clear();
} void showHint() {
if (!isHintUsed) {
28
setState(() {
isHintUsed = true;
int indexToReveal = random.nextInt(currentWord.length - 2) + 1;
List<String> displayList = displayWord.split(" ");
displayList[indexToReveal] = currentWord[indexToReveal];
displayWord = displayList.join(" ");
});
}
} void startTimer() {
countdownTimer = Timer.periodic(Duration(seconds: 1), (timer) {
if (this.timer <= 1) {
setState(() {
gameOver = true;
});
countdownTimer.cancel();
} else {
setState(() {
this.timer -= 1;
});
}
});
}
@override
Widget build(BuildContext context) {
double screenWidth = MediaQuery.of(context).size.width;
double screenHeight = MediaQuery.of(context).size.height;
return Scaffold(
appBar: AppBar(
title: Text("Word Dash", style: TextStyle(fontSize: screenWidth * 0.07)),
centerTitle: true,
),
body: gameOver
? Center(
29
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("Game Over!", style: TextStyle(fontSize: 30, color: Colors.red, fontWeight:
FontWeight.bold)),
Text("Your Score: $points", style: TextStyle(fontSize: 20)),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {
setState(() {
hearts = 3;
points = 0;
currentWordIndex = 0;
_shuffleWordList();
gameOver = false;
});
startNewWord();
startTimer();
},
child: Text("Restart"),
),
],
),
)
: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("Category: $category", style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold)),
SizedBox(height: 10),
Text("Hint: $hint", style: TextStyle(fontSize: 20, fontStyle: FontStyle.italic)),
SizedBox(height: 20),
30
AI CHAT.DART
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:google_generative_ai/google_generative_ai.dart';
import 'package:intl/intl.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Ai chat',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const ChatScreen(),
);
}
}
class ChatScreen extends StatefulWidget {
const ChatScreen({super.key});
@override
State<ChatScreen> createState() => _ChatScreenState();
}
class _ChatScreenState extends State<ChatScreen> {
TextEditingController _userInput =TextEditingController();
static const apiKey = "AIzaSyDu1ZzP1KKgb6slJURmDTrMlorPZyOkF3c";
final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
32
})
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Expanded(
flex: 15,
child: TextFormField(
style: TextStyle(color: const Color.fromARGB(255, 255, 255, 255)),
controller: _userInput,
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
),
label: Text('Enter Your Message')
),
),
),
Spacer(),
IconButton(
padding: EdgeInsets.all(12),
iconSize: 30,
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.black),
foregroundColor: MaterialStateProperty.all(Colors.white),
shape: MaterialStateProperty.all(CircleBorder())
),
onPressed: (){
sendMessage();
},
icon: Icon(Icons.send))
],
34
),
)
],
),
),
);
}
}
class Message{
final bool isUser;
final String message;
final DateTime date;
Message({ required this.isUser, required this.message, required this.date});
}
class Messages extends StatelessWidget {
final bool isUser;
final String message;
final String date;
const Messages(
{
super.key,
required this.isUser,
required this.message,
required this.date
});
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
padding: EdgeInsets.all(15),
margin: EdgeInsets.symmetric(vertical: 15).copyWith(
left: isUser ? 100:10,
35
B.SCREENSHOTS
fields for name, email, and fields, and a pink Login button.
This Figure B.3 Represents Pink screen This Figure B.4 Represents Six
with the title Messages. Two contacts: options: Gift Chat, AI Chat,
Surender and Selya. Bottom navigation Encryption, Word Dash, Text to PDF,
bar with Home and Utility icons. Schedule Message.Bottom bar with
Home and Utility.
38
This Figure B.5 Represents AI Chat This Figure B.6 Represents The game
screen showing a Go program to print is called Word Dash and is about
Hello world. guessing words. The hint is An animal
with stripes, with the word _ _ _ r
_.The player has 25 seconds, three
hearts, and options to guess or get a
hint.
39
REFERENCES
[2] Thomas Bailey ,Alessandro Biessek(2021) ,”Flutter for Beginners - Second Edition:
[4] https://github.com/flyerhq/flutter_firebase_chat_core.
[5] https://github.com/ArunBalajiR/Flutter-Chat-Application.
36