Skip to content

Project Proposal

Daniel Bergeron edited this page Nov 18, 2023 · 3 revisions

Mission Statement

Mission Statement

We aim to create an eCommerce mobile application and will be focusing on front-end development while incorporating most topics from class. We aim to make multiple screens consisting of the home, catalog, cart, and item screen. We will use a database to store our items, and add features such as a navigation drawer, and search bar to find specific items. Project Information and Background

We are planning to create multiple screens for our mobile application. The first screen will be the home screen with sales, like a Black Friday sale, and featured items. Then in our catalog screen, we will have each of our items listed, a search bar to find specific items, and filters for choosing items to a certain specification.

The home screen will have a section for current promotions at the top of the screen, which will highlight deals such as Black Friday, Christmas sales, or any other holiday sales. When a user clicks a promotion, they will be directed to those sale items. Below the promotion tab will be other items that are featured items, such as bestselling or clearance items.

The catalog screen, which along with the item screen will be our focus of our time, will have all the items of our store. We show two items per row and for each item, we will display the name, price, and a small image. If we have more time, at the top of the screen, we will have the regular top nav bar, but just below that we will have the search bar, and an item filter button so that you can specify specific items you want to see displayed.

Clicking any item will take you to the item screen that gives more information about the item. Then we will have the cart fragment that holds all the items we have within our cart. Clicking any of the items in this fragment will bring us back to the item fragment with the clicked item’s details.

Due to the complexity of our mobile app, we will utilize top bar navigation and a drawer to help our users navigate between each screen. On our top bar, we will have a back button, which will return you to the previous screen, and a cart button, which will take you to the screen that has all the items you placed in your cart.

Proposed Tasks

Task 1 – Basic navigation

Our first task is to create the different fragments and navigation. We will need to create blank fragments for each of our separate pages and create placeholder text 2 views so that we can distinguish between screens. We will then create a nav graph for handling our navigation action and arguments, then we will implement the top and bottom nav bars. To do this, we will create the toolbar and drawer XML files inside of the /src/main/res/menu directory. The toolbar will have one item for the cart button as well as the name of our app “Sahara”, and the drawer will have access to the catalog, cart, and promotional deals. Clicking the app name “Sahara” on the tool bar will bring you back to the home page.

Task 2 – Item fragment

Our second task is to create our item fragment. This is essential to create in the beginning stages because it also dictates how the rest of our fragments appear. We can include a picture of the item, the cost, an add to cart button, and a short description of the item for each item. In the beginning stages of our application, we will use hardcoded values for the items, but we will change the source of the items once we create the database integration.

Task 3 – Catalog fragments

After creating our item fragment, we will focus a lot of time on our catalog fragment. This fragment will include a scrollable view of the items. Each row will have 2 items, and each item will show a small image, the name of the item, and the price. Clicking any of the items will bring you to the item fragment with information pertaining to the clicked item.

Task 4 – home fragment

Our home fragment will contain a button with the image of promotional sales for the current season. Clicking on this button will direct you to the catalog screen with specific filters to show the current promotion’s items. Below the promotions button, we will show featured items which will be items that are best sellers or on sale.

Task 5 – Construct database

We will construct the database first by taking our time to design it. We will use an E/R diagram to see the relationships between entities, their attributes, and relationships between the entity sets. Then we will implement the database using SQLite, using instructions found on the android studio documentation page.

Task 6 – Integrate database within our existing codebase

We will use our existing database to manipulate data across the entire mobile app. We will create helper functions so that the people on the front end can properly query and display information without having to type specific SQL statements. Then those working on the backend will work closely with those working on the frontend to properly integrate the database.

Extra task – Database construction and integration

The extra task we can do is to create a database for our project; this is a combination of tasks 5 and 6. We can do that with SQLite to save all our items along with their descriptions. This part of the project will require us to create the database, but also to integrate all our frontend elements to use the data within SQLite.

Possible Learning Efforts

The new topics we need to learn for this project come from the extra task of creating and integrating an SQLite database into our application. We would need to learn how to represent data within relational databases, how to insert, manipulate and delete data, and how to integrate the 3 items in our database with the rest of the application. We will also use this database to manipulate the items shown in the catalog with a search bar and additional filters.

Proposed Timeline to Complete Tasks

Task Start Date End Date Basic navigation 11/18/2023 11/17/2023 Item fragment 11/18/2023 11/24/2023 Home fragment 11/25/2023 11/1/2023 Catalog fragment 11/2/2023 11/9/2023 Database construction 11/18/2023 11/25/2023 Database integration 11/26/2023 11/9/2023 Some of our task’s dates overlap with each other. This is because those responsible with the frontend and backend will be working at the same time.

Plan for Collaborative Work

Our group is planning to divide the work by frontend and backend tasks. For the front end, Daniel and Nish will work on creating the different fragments, while Danny and Ryan will work on creating and integrating the database within the project. These are rough responsibilities of each member, because everyone will be contributing to the frontend in the beginning stages of the project. We will also be using virtual control to work alongside each other. We will utilize GitHub to do so, and Daniel, who has co-operative project experience, will help to make sure we can push our code without errors or conflicts.

We are planning to meet virtually every Wednesday morning to discuss the work we have completed and the next steps of the project that need to be done within the week. We will also have an optional meeting on Saturday morning in case anybody within the group needs additional help for their part of the project.