Mad Report
Mad Report
PROJECT
REPORT
ON
MICRO PROJECT ON
To
COMPUTER ENGINEERING DEPARTMENT
C U SHAH (GOVT.) POLYTECHNIC – SURENDRANAGAR
An Android app for an online cake shop gives customers a simple way to look through,
order, and pay for cakes and pastries right from their phones. It makes picking out
cakes, personalizing orders, and scheduling deliveries super easy, so it's perfect for
those special moments or when you just want to treat yourself.
Key Features:
o User Registration and Login: Lets users make accounts, log in, and keep track
of their profiles. Offers log in choices through email, social media, or
phone number.
o Shopping Cart and Checkout: Users can toss multiple items into their cart.
Displays an order summary and breaks down the price. Offers secure
payment methods like credit/debit cards, UPI, and wallets.
o Order Tracking: Lets users keep an eye on their order status in real-
time, whether it's confirmed, baking, dispatched, or delivered.
Sends notifications for updates on orders.
o Delivery Scheduling: Lets users pick their desired delivery dates and time slots.
Also offers same-day delivery or the option to order ahead.
o User Reviews and Ratings: Customers can rate cakes and write reviews. Helps
new buyers make smarter choices.
Requirements of Project
1. Software Requirements:
Operating System:
o we’ll need either Windows, macOS, or Linux to develop.
Development Tools:
o Android Studio: This is the main IDE for making Android apps.
o JDK (Java Development Kit): We must have this to run Android Studio (you can
use either Java or Kotlin for coding).
Backend Development:
o Server-Side Languages: You can use Node.js, Java, Python, or PHP for backend
work.
Database:
o Firebase Realtime Database (NoSQL).
2. Hardware Requirements:
Development Machine:
o Minimum: 8 GB RAM, Intel i5 processor, 256 GB SSD.
3. Functional Requirements:
o User Management: User registration, login, profile management.
o Cake Catalog Management: Display, filter, and categorize cakes.
o Shopping Cart: Adding, updating, and removing items.
o Checkout and Payment: Secure payment integration.
o Order Tracking: Real-time tracking of order status.
o Admin Panel: Manage products, orders, and customer accounts.
4. Non-Functional Requirements:
o Performance: The app should load content within 2-3 seconds.
o Scalability: The backend should support increasing users and orders.
o Security: Protect user data, secure payment processing, and use encrypted
communications.
o Usability: User-friendly interface, easy navigation, and accessible design.
o Reliability: Ensure 99.9% uptime for the server.
Architecture/Code of Project
MainActivity
package com.example.coffeeshop;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import java.util.ArrayList;
import java.util.List;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
// Perform search based on user input
searchItems(charSequence.toString().toLowerCase());
}
@Override
public void afterTextChanged(Editable editable) {}
});
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isLoggedIn) {
// If logged in, redirect to the home screen directly
startActivity(new Intent(LoginActivity.this, HomeActivity.class));
finish();
return;
}
setContentView(R.layout.activity_login);
mAuth = FirebaseAuth.getInstance();
loginEmail = findViewById(R.id.loginEmail);
loginPassword = findViewById(R.id.loginPassword);
loginButton = findViewById(R.id.loginButton);
registerRedirect = findViewById(R.id.registerRedirect);
if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password)) {
Toast.makeText(LoginActivity.this, "Please fill all fields", Toast.LENGTH_SHORT).show();
} else {
// Show progress dialog while logging in
progressDialog.show();
// Firebase login
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(task -> {
progressDialog.dismiss(); // Hide progress dialog after the task completes
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(LoginActivity.this, "Login Successful!",
Toast.LENGTH_SHORT).show();
1. Order Placement: Customers can easily browse through available cake options,
customize their orders (flavors, sizes, decorations), and place orders directly
through the app, enhancing convenience and speed.
4. Order History Access: Customers can view their past orders in the app, making it
easy to reorder their favorite cakes or reference previous purchases for special
occasions.
5. Repeat Orders: The order history feature allows customers to quickly repeat
previous orders with minimal effort, improving customer satisfaction and
loyalty.
6. Event Reminders: The app can use order history to remind customers of
important dates (like birthdays or anniversaries) when they have previously
ordered cakes, encouraging them to place orders for those occasions.
7. Customer Feedback and Ratings: After delivery, customers can provide feedback
on their orders, which can be used to improve service quality and product
offerings.
8. Promotional Offers Based on Order History: The app can analyze order history to
offer personalized discounts or promotions based on a customer’s preferences,
encouraging repeat business.
9. Inventory Planning: The order history data can help shop owners forecast
demand and manage inventory more efficiently, ensuring that popular cakes are
always available.
10. Special Requests Handling: Customers can add special requests or notes when
placing orders, ensuring that any specific needs or preferences are met.
These applications make your cake shop app not only a tool for placing orders but also a
comprehensive platform that enhances the overall customer experience through
features like order tracking, history, and personalized communication.
Advantages and Disadvantages of your system
https://youtu.be/5Sf51Pl8mS0?si=L8K1TbV40LT9gdoe
https://youtu.be/1lwNmmgf-Y0?si=86Wrqv23kTkf186b