You are on page 1of 25

The Random Roulette

A Mini Project Report


Submitted in Partial fulfilment for the award of
Bachelor of Technology in CSE

Submitted to
RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA
BHOPAL (M.P)

MINI PROJECT REPORT


Submitted by

Krishan Kumar Dwivedi [0103CS221202]


Harshit Malviya [0103CS221164]
Goutam Singh Sumbria [0103CS221155]

Under the supervision of


Prof. Hirdesh Ranjan
[Assistant professor (LNCT, Bhopal)]

Department of CSE
Lakshmi Narain College of Technology, Bhopal (M.P.)
Session 2023-24

1
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY, BHOPAL

DEPARTMENT OF CSE

CERTIFICATE

This is to certify that the work embodied in this project work entitled “The Random
Roulette” has been satisfactorily completed by the
Krishan Kumar Dwivedi[0103CS221202]
Harshit Malviya [0103CS221164]
Goutam Singh Sumbria [0103CS221155]
It is a Bonafede piece of work, carried out under the guidance in Department of
CSE, Lakshmi Narain College of Technology, Bhopal for the partial fulfilment of
the Bachelor of Technology during the academic year 2023-2024.

Prof. Hirdesh Ranjan


[Assistant Professor (LNCT, BHOPAL)]
(GUIDE)

Approved By

Professor & Head


Department of Computer Science & Engineering

2
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY, BHOPAL

DEPARTMENT OF CSE

ACKNOWLEDGEMENT

We express our deep sense of gratitude to Prof. Hirdesh Ranjan (Guide)


department of CSE L.N.C.T., Bhopal. Whose kindness valuable guidance and
timely help encouraged us to complete this project.

A special thank goes to Dr. Sadhna Mishra (HOD) who helped us in completing this
project work. She exchanged her interesting ideas & thoughts which made this
project successful.

We would also thank our institution and all the faculty members without whom this
project would have been a distant reality.

Date: 06-12-2023
Place: Bhopal

Signature

Krishan Kumar Dwivedi[0103CS221202] …………………………

Harshit Malviya [0103CS221164] …………………………

Goutam Singh [0103CS221155] …………………………

3
INTRODUCTION

Introducing " The Random Roulette " – a versatile decision-making application


designed to streamline your selection process with a touch of randomness. The
Random Roulette encompasses three distinctive features: Dice Roller, Coin
Flipper, and Num Gen, allowing users to effortlessly make decisions through the
whims of chance.
1. Dice Roller: Embrace the unpredictability of a virtual dice roll. Whether
you're faced with choices or simply seeking a spontaneous decision, the
Dice Roller feature provides a fair and fun way to leave your choices to
chance.
2. Coin Flipper: Channel the age-old method of flipping a coin to make
decisions. With the Coin Flipper feature, you can rely on the app to replicate
the coin toss experience, bringing an element of randomness to your
decision-making process.
3. Num Gen (Random Number Generator): Need a random number within
a specified range? Num Gen has you covered. Define your range, and let the
app generate a random number for you. Perfect for scenarios where a
numerical decision is required.
The Random Roulette is not just an ordinary decision maker; it's a comprehensive
tool that adds an element of surprise and excitement to your choices. Whether
you're settling a bet, choosing a restaurant, or making any decision where
randomness can be your ally, The Random Roulette is here to assist.
Experience the thrill of uncertainty with The Random Roulette where decisions are
made with a touch of flair! Elevate your decision-making game.

ABSTRACT
This project stemmed from the imperative need to create an application that
addresses the challenges inherent in unbiased decision-making, particularly when
genuine randomness is paramount. The objective was clear: to develop a tool that
provides truly random results, free from the influence of personal biases or past
outcomes. Moreover, the application needed to be universally accessible, catering
to users across various platforms.

To achieve these goals, we adopted Flutter, a powerful cross-platform framework,


along with the Dart programming language. This strategic choice not only

4
facilitated the development of a consistent user interface but also expedited the
development cycle through features such as hot reload. The decision to leverage
Flutter was driven by our commitment to breaking down platform barriers and
ensuring the Random Roulette app's availability to a diverse user base.

As we continue to enhance and refine the application, the utilization of Flutter and
Dart remains instrumental in delivering a seamless, unbiased, and universally
accessible decision-making experience. This abstract encapsulates the key aspects
of our project, highlighting the fusion of technology and purpose to meet the dual
objectives of unbiased decision-making and cross-platform inclusivity.

5
INDEX

S.NO. TOPICS PAGE NO.

1. Problem Domain Description 7

2. Literature Survey 8-9

3. Mini objective & scope of project 9-10

4. Problem Analysis and requirement specification 11-13

5. Detailed Design (Modelling and ERD/DFD) 14-15

6. Hardware/Software platform environment 16-17

7. Snapshots of Input & Output 18-19

8. Coding 20-22

9. Project limitation and Future scope 22-23

10. References 24

6
CHAPTER-1

PROBLEM DOMAIN DESCRIPTION

Introduction: The Random Roulette app emerges as a solution to the challenges


encountered in the process of making unbiased and truly random decisions. Often,
decision-making is swayed by our inherent feelings or influenced by prior outcomes. In
scenarios demanding true randomness, our application offers a reliable and impartial
approach to decision-making.
Problem Statement: The inherent bias in decision-making can be a significant hurdle
when seeking truly random outcomes. Human emotions and tendencies often infiltrate the
decision-making process, leading to results that may not genuinely reflect randomness.
The need for a tool that consistently produces unbiased decisions has become apparent.
Objective: The primary goal of the Random Roulette app is to eliminate the influence of
personal biases and previous outcomes on decision-making. By providing a platform
where randomness is guaranteed, the application aims to assist users in situations where
an unbiased decision is crucial.
Key Features:
1. Impartial Decision-Making: The app ensures that decisions are not influenced by
emotions or past results, guaranteeing an unbiased outcome in every use.
2. Versatility in Decision Tools: Offering a trio of decision-making tools – Dice
Roller, Coin Flipper, and Num Gen – the app caters to a diverse range of decision
needs, from simple choices to more complex numerical decisions.
3. User-Friendly Interface: The application boasts an intuitive and user-friendly
interface, making it accessible to a broad audience. Users can seamlessly navigate
the features for a hassle-free decision-making experience.
Conclusion: In conclusion, the Random Roulette app serves as a valuable tool for those
seeking genuine randomness in their decision-making process. By addressing the
challenges associated with biases and prior outcomes, the application provides a reliable
and effective means of making truly random decisions. As we continue to refine and
enhance the app, we remain committed to delivering a tool that empowers users to
embrace the uncertainty of randomness without the interference of external factors.

7
CHAPTER-2

LITERATURE SURVEY

2.1 Introduction:

Objective: The paramount objective in developing our application was to ensure an


unbiased and genuinely random outcome in decision-making. Recognizing the
universal nature of decision scenarios, we aimed to create a tool that is accessible to
everyone, irrespective of their preferred platform.
Platform Consideration: To achieve cross-platform compatibility, we opted for
Flutter, a robust and versatile cross-platform framework. Flutter's capability to deliver
a seamless user experience across various operating systems and devices made it an
ideal choice for our application. By choosing Flutter, we aspired to make the Random
Roulette app universally available and user-friendly.
Technology Stack: The development was carried out using the Dart programming
language, a language optimized for building high-performance applications with
Flutter. Dart's efficiency and compatibility with Flutter's framework contributed to a
streamlined development process, allowing us to focus on achieving the key objectives
of unbiased decision-making and cross-platform accessibility.
Benefits of Flutter:
1. Consistent User Interface: Flutter provided a unified and consistent user
interface across platforms, ensuring that users have a familiar and seamless
experience, whether they are using the app on Android, iOS, or other platforms.
2. Efficient Development Cycle: The hot reload feature of Flutter expedited the
development cycle, enabling quick iterations and efficient testing. This allowed
us to promptly address any issues and enhance the application's features.
3. Wide Accessibility: By choosing Flutter, we aimed to break down platform
barriers and make the Random Roulette app accessible to a broader audience,
promoting inclusivity and usability for everyone.
Conclusion: The decision to employ Flutter and Dart in the development of the
Random Roulette app was a strategic one, driven by the dual goals of achieving
unbiased decision-making and ensuring the application's availability across diverse
platforms. As we continue to refine and expand the application, the use of Flutter
remains instrumental in delivering a consistent and reliable experience for users,
irrespective of their preferred device or operating system.

8
User Experience (UX) and User Interface (UI) Design:

We used Figma for our basic UI and UX design and for graphics we used adobe
Illustrator.

CHAPTER-3

MINI OBJECTIVE & SCOPE OF PROJECT

The primary objective of the Random Roulette app project is to develop a


user-friendly application that facilitates unbiased decision-making through
random outcomes. The app aims to provide a reliable tool for users seeking
impartial choices, unaffected by personal biases or prior results. By
incorporating features such as Dice Roller, Coin Flipper, and Num Gen, the
project seeks to offer a versatile solution for a wide range of decision
scenarios.
Scope:

9
1. Unbiased Decision-Making: Develop algorithms and functionalities
within the app to ensure that decision outcomes are genuinely random
and free from any external influences.
2. Cross-Platform Accessibility: Utilize the Flutter framework with Dart
programming language to create a cross-platform application compatible
with various operating systems, including Android and iOS. The goal is
to make the Random Roulette app universally accessible to a diverse
user base.
3. User-Friendly Interface: Design an intuitive and user-friendly interface
for the application to enhance the overall user experience. Prioritize
simplicity in navigation to cater to users with varying levels of
technological expertise.
4. Feature Integration: Implement key features such as Dice Roller for
random choices, Coin Flipper for coin toss simulations, and Num Gen
for generating random numbers within specified ranges. Ensure seamless
integration and functionality of each feature.
5. Continual Enhancement: Lay the groundwork for ongoing
improvements and updates to the application. Consider user feedback
and emerging technologies to refine features, enhance performance, and
maintain the relevance and effectiveness of the Random Roulette app.
By achieving these objectives within the defined scope, the project aims to
deliver a robust, unbiased decision-making tool accessible to users across
diverse platforms.

10
CHAPTER-4

PROBLEM ANALYSIS AND


REQUIREMENT SPECIFICATIONS

Problem Analysis:
1. Biased Decision-Making:
• Issue: Individuals often face challenges in making unbiased
decisions due to inherent feelings, preferences, or influences
from past outcomes.
• Impact: Biased decision-making can lead to suboptimal
choices, affecting personal and professional outcomes.
2. Lack of Random Decision Tools:
• Issue: Existing decision-making tools may lack true
randomness, relying on predictable patterns or algorithms.
• Impact: Users seeking genuinely random outcomes may find
current tools inadequate for their needs.
3. Limited Cross-Platform Accessibility:
• Issue: Many decision-making applications are platform-
specific, limiting accessibility for users on different
operating systems.
• Impact: Exclusion of potential users and a lack of universal
availability for the tool.
4. Complex Decision-Making Scenarios:
• Issue: Some decision scenarios involve both simple choices
and numerical considerations, requiring a versatile solution.
• Impact: Users may need multiple tools or applications to
address diverse decision-making needs.
Requirements Specification:
1. Functional Requirements:
• Unbiased Decision Algorithms:
• Implement algorithms to ensure true randomness in
decision outcomes.

11
• Dice Roller:
• Develop a feature for simulating random dice rolls for
decision-making.
• Coin Flipper:
• Create a feature for replicating the randomness of a
coin toss.
• Num Gen (Random Number Generator):
• Implement a feature to generate random numbers
within specified ranges.
2. Cross-Platform Compatibility:
• Flutter Framework:
• Utilize Flutter for cross-platform development.
• Ensure compatibility with Android and iOS operating
systems.
3. User Interface (UI) Design:
• Intuitive Design:
• Design a user-friendly interface for seamless
navigation.
• Prioritize simplicity to cater to users with varying
technological expertise.
4. Security and Privacy:
• Data Protection:
• Implement measures to protect user data and ensure
privacy.
• Avoid the storage or sharing of sensitive information.
5. Scalability and Performance:
• Efficient Resource Utilization:
• Optimize code and resources for efficient performance.
• Ensure the application remains responsive and scalable
with potential feature expansions.
6. Feedback Mechanism:
• User Feedback Integration:
• Include a mechanism for users to provide feedback.
• Use feedback for continuous improvement and feature
enhancements.
12
7. Documentation:
• User Guide:
• Develop comprehensive documentation for users.
• Provide clear instructions on how to use each feature.
By addressing these requirements, the Random Roulette app aims to
provide users with an unbiased, versatile, and accessible decision-
making tool, catering to a diverse range of decision scenarios.

13
CHAPTER-5

DETAILED DESIGN (MODELING AND ERD/DFD)

1. Modelling:
Use Case Diagram:
• Actors:
• User: Interacts with the application to utilize decision-making features.
• Use Cases:
• Make Random Decision:
• Description: User triggers the process to generate a random decision.
• Access Dice Roller:
• Description: User accesses the Dice Roller feature for random dice
outcomes.
• Access Coin Flipper:
• Description: User accesses the Coin Flipper feature for simulating coin
tosses.
• Access Num Gen:
• Description: User accesses the Num Gen feature to generate random
numbers.
Activity Diagram:
• Make Random Decision:
• Steps:
1. User initiates the decision-making process.
2. Application randomly selects a decision outcome.
3. Result is displayed to the user.
Sequence Diagram:
• Access Dice Roller:
• Steps:
1. User requests access to Dice Roller.
2. Application presents Dice Roller interface.
3. User triggers the dice roll.
4. Application generates a random dice outcome.
5. Result is displayed to the user.
2. Entity-Relationship Diagram (ERD):
Entities:
• User

14
• Decision
• Dice Outcome
• Coin Outcome
• Random Number
Relationships:
• User Makes Decision:
• Connects User to Decision (Many-to-Many)
• Indicates the decisions made by each user.
• Decision Involves Dice Outcome:
• Connects Decision to Dice Outcome (One-to-One)
• Links each decision to its associated dice outcome.
• Decision Involves Coin Outcome:
• Connects Decision to Coin Outcome (One-to-One)
• Links each decision to its associated coin outcome.
• Decision Involves Random Number:
• Connects Decision to Random Number (One-to-One)
• Links each decision to its associated random number.
3. Data Flow Diagram (DFD):
Processes:
• Generate Random Decision:
• Inputs: User request
• Outputs: Decision outcome
• Description: Orchestrates the decision-making process, involving Dice
Roller, Coin Flipper, and Num Gen.
• Access Dice Roller:
• Inputs: User request
• Outputs: Dice outcome
• Description: Manages the process of simulating a dice roll.
• Access Coin Flipper:
• Inputs: User request
• Outputs: Coin outcome
• Description: Manages the process of simulating a coin toss.
• Access Num Gen:
• Inputs: User request
• Outputs: Random number
• Description: Manages the process of generating a random number.

15
CHAPTER-6
HARDWARE/SOFTWARE
PLATFORM ENVIRONMENT

The Random Roulette app is designed to be versatile and lightweight, ensuring


compatibility with a wide range of hardware environments. The hardware requirements
are minimal, allowing for optimal performance on various devices. The key hardware
specifications include:
1. Processor:
• Minimum: Dual-core processor
• Recommended: Quad-core processor or higher
2. RAM (Random Access Memory):
• Minimum: 2 GB
• Recommended: 4 GB or higher
3. Storage:
• Minimum: 20 MB available storage
• Recommended: 50 MB or more for potential updates and additional features
4. Display:
• Resolution: 720p or higher
• Screen Size: Compatible with various screen sizes, from smartphones to
tablets and desktop monitors.
5. Connectivity:
• Internet connection for initial download and updates (if applicable)
Software Environment:
The Random Roulette app is developed to be platform-agnostic, ensuring accessibility
across multiple operating systems. The software environment is carefully chosen to
provide a seamless and consistent user experience. The key software specifications
include:
1. Operating Systems:

16
• Android (version 5.0 and above)
• iOS (version 10 and above)
2. Cross-Platform Framework:
• Flutter
3. Programming Language:
• Dart
4. Integrated Development Environment (IDE):
• Visual Studio Code with Flutter and Dart extensions
5. Database:
• SQLite for local storage
6. Version Control:
• Git for source code versioning
Platform Environment:
The Random Roulette app leverages the power of Flutter, a cross-platform framework, to
create a unified platform environment. This choice ensures that the application functions
seamlessly across different platforms, maintaining a consistent look and feel. The
platform environment encompasses:
1. Cross-Platform Framework:
• Flutter
2. User Interface (UI) Design:
• Material Design for Android
• Cupertino Design for iOS
3. Compatibility:
• Android smartphones and tablets
• iOS devices (iPhone and iPad)
4. Development Workflow:
• Hot reload feature for quick development iterations
• Flutter's UI toolkit for building a consistent user interface across platforms
By adhering to these hardware and software specifications and leveraging the Flutter
framework for cross-platform development, the Random Roulette app ensures a broad
reach and optimal performance across diverse devices and operating systems.

17
CHAPTER-7

SNAPSHOTS OF INPUT AND OUTPUT

18
19
CHAPTER-8

CODING

In the development of the Random Roulette app, several technologies were


employed to achieve its objectives. Here's an overview of the key technologies
used:
1. Flutter:
• Description: Flutter is an open-source UI software development toolkit
created by Google. It is used for building natively compiled applications for
mobile, web, and desktop from a single codebase.
• Purpose: Employed as the primary cross-platform framework for the
development of the Random Roulette app, ensuring a consistent user
experience across various operating systems.
2. Dart:
• Description: Dart is a programming language developed by Google. It is
optimized for building mobile, desktop, server, and web applications.
• Purpose: Dart is the programming language used in conjunction with Flutter
to implement the logic and functionality of the Random Roulette app.
3. Visual Studio Code:
• Description: Visual Studio Code (VS Code) is a free, open-source code
editor developed by Microsoft. It provides support for various programming
languages and features like syntax highlighting, debugging, and version
control.
• Purpose: Chosen as the integrated development environment (IDE) for
Flutter and Dart development during the creation of the Random Roulette
app.
4. Git:
• Description: Git is a distributed version control system designed to track
changes in source code during software development.
• Purpose: Used for source code versioning and collaboration, allowing
multiple developers to work on the Random Roulette app concurrently.
These technologies collectively contribute to the efficient development, cross-
platform compatibility, and seamless user experience of the Random Roulette
app. Each technology was selected based on its suitability for achieving specific
goals within the project.

20
21
CHAPTER-9

PROJECT LIMITATION AND FUTURE SCOPE

1. Internet Dependency:
• The application requires an internet connection for the initial
download and updates, if applicable. Offline functionality
may be limited.
2. Device Compatibility:
• While the app aims for broad compatibility, certain older
devices with limited hardware specifications may experience
reduced performance.

22
3. Security Constraints:
• The application focuses on simplicity and does not
implement advanced security features. Users are advised not
to rely on the app for critical or sensitive decisions.
4. Limited Decision-Making Tools:
• The current version offers three main decision-making tools
(Dice Roller, Coin Flipper, and Num Gen). Future updates
may expand these tools based on user feedback and demand.
5. Local Storage:
• The app utilizes SQLite for local storage. While this ensures
lightweight data storage, it might limit scalability for users
with extensive decision histories.
6. Platform-Specific Features:
• Certain platform-specific features or design elements may
not be fully exploited due to the cross-platform nature of the
application.
Future Scope:
1. Enhanced Decision-Making Tools:
• Introduce new decision-making tools based on user feedback
and evolving user needs, expanding the application's
versatility.
2. Cloud Integration:
• Implement cloud-based storage for decision histories,
allowing users to access their data across multiple devices
and ensuring a seamless experience.
3. Advanced Security Features:
• Integrate additional security measures to safeguard user data,
especially if the app evolves to handle more sensitive
information.
4. Customization Options:
• Provide users with the ability to customize the application's
interface, themes, and decision-making parameters,
enhancing the personalization aspect.
5. Collaborative Decision-Making:

23
• Explore features that allow multiple users to participate in
decision-making processes collaboratively, adding a social
dimension to the app.
6. Machine Learning Integration:
• Investigate the integration of machine learning algorithms to
enhance the randomness and unpredictability of decision
outcomes.
7. Localization and Globalization:
• Expand language support and consider cultural nuances to
make the app more accessible and user-friendly on a global
scale.
8. Accessibility Features:
• Incorporate accessibility features to ensure the app is usable
by individuals with varying abilities, making it inclusive for
a diverse user base.
9. Integration with Third-Party Apps:
• Explore partnerships or integrations with other applications,
allowing users to import decision-making scenarios from
their favourite productivity or entertainment apps.
10. Data Analytics:
• Implement analytics tools to provide users with insights into
their decision-making patterns over time, fostering self-
awareness.
By addressing these future scope considerations, the Random Roulette
app aims to evolve into a comprehensive, user-centric tool that adapts to
emerging trends in decision-making preferences and technological
advancements.

24
CHAPTER-10

REFERENCES

1. Flutter Retrieved from https://flutter.dev/


• Information about the Flutter framework for cross-platform development.
2. Dart. Retrieved from https://dart.dev/
• Documentation and resources for the Dart programming language.
3. Visual Studio Code. Retrieved from https://code.visualstudio.com/
• The official website for Visual Studio Code, the integrated development
environment used for Flutter and Dart development.
4. Git. Retrieved from https://git-scm.com/
• Documentation and resources for the Git version control system.

25

You might also like