Code đồ án ứng dụng bán hàng online viết bằng Android Studio

[Mã code 29747]
  1 Đánh giá    Viết đánh giá
 35      7864      142
Phí tải: 40 Xu (1Xu = 1.000đ)
Danh mục
Thể loại
Nhóm code
Ngày đăng
03-11-2021
Loại file
Full code
Dung lượng
440 MB

Code được viết bằng Android Studio + Firebase. Đây là ứng dụng bán hàng online (E-commerce) với đầy đủ các chức năng của một ứng dụng bán hàng hiện nay. Code đồ án, Sharecode.


MÔ TẢ CHI TIẾT

Code đồ án, Sharecode. Code xài ngon nhe ae!!!

          - Đây là ứng dụng bán hàng trực tuyến (cá nhân) gồm các sản phẩm: Áo, quần, nón, kính.

          - Xây dựng một ứng dụng với giao diện dễ nhìn, dễ thao tác cho người dùng.

          - Ứng dụng sẽ có đầy đủ chức năng của một ứng dụng bán hàng hiện nay.

          - Ứng dụng còn có phát triển chức năng live stream giúp cho việc bán hàng dễ dàng hơn.

  • Phần mềm có chức năng cơ bản của một ứng dụng bán hàng ngoài ra còn có thể thống kê yêu thích và đánh giá sản phẩm của người dùng.
  • Người sử dụng có thể xem sửa thông tin cá nhân, thêm sản phẩm vào giỏ hàng, mua hàng, tìm kiếm sản phẩm, yêu thích đánh giá sản phẩm.
  • Chức năng đăng ký, đăng nhập, đăng xuất, quên mật khẩu (gửi mail xác nhận cập nhật mật khẩu mới), cập nhật thay đổi thông tin người dùng (địa chỉ, số điện thoại, email, tên, ảnh đại diện).
  • Chức năng tìm kiếm, yêu thích sản phẩm, mua hàng, thanh toán.
  • Chức năng hiển thị thông tin chi tiết sản phẩm, đánh giá sản phẩm.


XEM THÊM ==> Hướng dẫn cài đặt chi tiết

 

HÌNH ẢNH DEMO

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

ứng dụng android,app bán hàng online,ứng dụng e - store,source code app bán hàng,Code đồ án Android

Nguồn: Sharecode.vn



HƯỚNG DẪN CÀI ĐẶT

- Hướng dẫn tạo Firebase

Bước 1: Điều đầu tiên bạn cần làm là đi đến https://firebase.google.com/ và tạo một tài khoản để truy cập vào giao diện điều khiển. Sau khi bạn truy cập vào giao diện điều khiển, bạn có thể bắt đầu bằng cách tạo ra các dự án đầu tiên của bạn.

 

Bước 2: Cung cấp tên package của project và mã SHA-1. Sau đó file google-services.json sẽ được tự động được tải về sau khi ấn vào nút add app

 

Bước 3: Tạo một dự án mới trong Android Studio từ File ⇒ Dự án mới. Trong khi điền các thông tin chi tiết dự án, sử dụng cùng một tên gói mà bạn đã đưa vào giao diện của Firebase

Bước 4: Paste file google-services.json vào thư mục app của dự án của bạn. Bước này rất quan trọng như dự án của bạn sẽ không được xây dựng mà không có tập tin này.

Bước 5: Bây giờ mở build.gradle nằm trong thư mục chính của dự án và thêm đoạn mã google play

build.gradle
dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

Bước 6: Mở app/build.gradle sau đó thêm firebase database dependency. Ở cuối file, thêm apply plugin: ‘com.google.gms.google-services’

app/build.gradle
dependencies {
    // Adding support library for this demo app
    compile 'com.android.support:design:24.2.1'

    compile 'com.google.firebase:firebase-database:9.6.1'
}

apply plugin: 'com.google.gms.google-services'

Bước 7: Để lưu trữ hồ sơ người dùng, chúng ta cần một lớp model được gọi User.java. Tạo một lớp có tên User.java và thêm vào dưới đây thuộc tính của lớp. Nếu bạn muốn bạn có thể thêm vài chi tiết tài sản như địa chỉ, điện thoại di động, vv,

User.java
package info.androidhive.firebase;

import com.google.firebase.database.IgnoreExtraProperties;

/**
* Created by Ravi Tamada on 07/10/16.
* www.androidhive.info
*/

@IgnoreExtraProperties
public class User {

    public String name;
    public String email;

    // Default constructor required for calls to
    // DataSnapshot.getValue(User.class)
    public User() {
    }

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }
}

Bước 8: Mở file layout của activity_main.xml. Tạo ra layout đơn giản, để bạn có thể nhập dữ liệu hồ sơ để lưu trữ trong cơ sở dữ liệu.

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="info.androidhive.firebase.MainActivity">

    <TextView
        android:id="@+id/txt_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_horizontal_margin"
        android:textSize="20dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/name"
                android:inputType="textCapWords"
                android:maxLines="1" />

        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <EditText
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/email"
                android:inputType="textEmailAddress"
                android:maxLines="1" />

        </android.support.design.widget.TextInputLayout>

        <Button
            android:id="@+id/btn_save"
            style="?android:textAppearanceSmall"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:background="@color/colorPrimary"
            android:text="@string/action_save"
            android:textColor="@android:color/white"
            android:textStyle="bold" />

    </LinearLayout>

</LinearLayout>

Bước 9

Mở MainActivity.java và thêm đoạn mã ở dưới cần thiết. Mã này là rất đơn giản và dễ hiểu.

Mục tiêu của chúng tôi là tạo ra các cấu trúc JSON như dưới đây, trong đó các 'APP_TITLE' lưu trữ tên ứng dụng.'users' lưu trữ hồ sơ người dùng như là một mảng của các nút.

{
  "app_title" : "Realtime Database",
  "users" : {
    "-KTYWvZG4Qn9ZYTc47O6" : {
      "email" : "ravi@androidhive.info",
      "name" : "Ravi Tamada"
    }
  }
}

GetReference("APP_TITLE") tạo ra một nút tên APP_TITLE mà các cửa hàng tiêu đề trên thanh công cụ.

GetReference("users") được tham chiếu đến nút người sử dụng.

CreateUser() phương pháp cửa hàng một người dùng mới trong cơ sở dữ liệu thời gian thực

UpdateUser() cập nhật phương pháp sử dụng các thông tin như tên và email.

MainActivity.java
package info.androidhive.firebase;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = MainActivity.class.getSimpleName();
    private TextView txtDetails;
    private EditText inputName, inputEmail;
    private Button btnSave;
    private DatabaseReference mFirebaseDatabase;
    private FirebaseDatabase mFirebaseInstance;

    private String userId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Displaying toolbar icon
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setIcon(R.mipmap.ic_launcher);

        txtDetails = (TextView) findViewById(R.id.txt_user);
        inputName = (EditText) findViewById(R.id.name);
        inputEmail = (EditText) findViewById(R.id.email);
        btnSave = (Button) findViewById(R.id.btn_save);

        mFirebaseInstance = FirebaseDatabase.getInstance();

        // get reference to 'users' node
        mFirebaseDatabase = mFirebaseInstance.getReference("users");

        // store app title to 'app_title' node
        mFirebaseInstance.getReference("app_title").setValue("Realtime Database");

        // app_title change listener
        mFirebaseInstance.getReference("app_title").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.e(TAG, "App title updated");

                String appTitle = dataSnapshot.getValue(String.class);

                // update toolbar title
                getSupportActionBar().setTitle(appTitle);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.e(TAG, "Failed to read app title value.", error.toException());
            }
        });

        // Save / update the user
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = inputName.getText().toString();
                String email = inputEmail.getText().toString();

                // Check for already existed userId
                if (TextUtils.isEmpty(userId)) {
                    createUser(name, email);
                } else {
                    updateUser(name, email);
                }
            }
        });

        toggleButton();
    }

    // Changing button text
    private void toggleButton() {
        if (TextUtils.isEmpty(userId)) {
            btnSave.setText("Save");
        } else {
            btnSave.setText("Update");
        }
    }

    /**
     * Creating new user node under 'users'
     */
    private void createUser(String name, String email) {
        // TODO
        // In real apps this userId should be fetched
        // by implementing firebase auth
        if (TextUtils.isEmpty(userId)) {
            userId = mFirebaseDatabase.push().getKey();
        }

        User user = new User(name, email);

        mFirebaseDatabase.child(userId).setValue(user);

        addUserChangeListener();
    }

    /**
     * User data change listener
     */
    private void addUserChangeListener() {
        // User data change listener
        mFirebaseDatabase.child(userId).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                User user = dataSnapshot.getValue(User.class);

                // Check for null
                if (user == null) {
                    Log.e(TAG, "User data is null!");
                    return;
                }

                Log.e(TAG, "User data is changed!" + user.name + ", " + user.email);

                // Display newly updated name and email
                txtDetails.setText(user.name + ", " + user.email);

                // clear edit text
                inputEmail.setText("");
                inputName.setText("");

                toggleButton();
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.e(TAG, "Failed to read user", error.toException());
            }
        });
    }

    private void updateUser(String name, String email) {
        // updating the user via child nodes
        if (!TextUtils.isEmpty(name))
            mFirebaseDatabase.child(userId).child("name").setValue(name);

        if (!TextUtils.isEmpty(email))
            mFirebaseDatabase.child(userId).child("email").setValue(email);
    }
}

- Hướng dẫn cài đặt code

Tại Gradle Script chọn local.properties sửa sdk.dir=C\:\\Users\\Admin\\AppData\\Local\\Android\\Sdk thành đường dẫn đến Sdk của máy bạn

 

 
 
LINK DOWNLOAD

mobile-app.rar [440 MB]

File đã kiểm duyệt
     Báo vi phạm bản quyền
Pass giải nén (Nếu có):
sharecode.vn
DOWNLOAD
(40 Xu)
Bạn có code hay
ĐĂNG BÁN NGAY

BÌNH LUẬN


Triệu Lý Vạn Trả lời Thích  014:49 - 5/5/2022
@aa ok
anhTu2000 Trả lời Thích  000:26 - 27/12/2021
Xin chào, tôi gặp một số vấn đề, bạn có thể trợ giúp?
Triệu Lý Vạn Trả lời Thích  015:34 - 27/12/2021
@anhTu2000 Ok bạn. Bạn có thể cho mình biết toàn bộ thông tin về lỗi mà bạn gặp phải
Triệu Lý Vạn Trả lời Thích  014:48 - 5/5/2022
@anhTu2000 ok nè
Chánh Trả lời Thích  110:06 - 5/11/2021
Rất tốt
Triệu Lý Vạn Trả lời Thích  110:06 - 25/12/2021
@Chánh Cảm ơn cậu, tải về là chỉ việc tận hưởng cậu hé.

ĐÁNH GIÁ


ĐIỂM TRUNG BÌNH

5
1 Đánh giá
Code rất tốt (1)
Code tốt (0)
Code rất hay (0)
Code hay (0)
Bình thường (0)
Thành viên
Nội dung đánh giá
09:31 - 5/11/2021
Code rất tốt
Thực tế dễ cài đặt. Giúp ích rất nhiều trong việc làm đồ án môn học.

 HỖ TRỢ TRỰC TUYẾN