Capstone Update #1: App Layout & Database Setup


Throughout the first month of working on the STEM Ease app, the main focus was on setting up the database to store user information and getting the basic format of the app created. The first screen that a user sees when launching the app is the welcome screen. The welcome screen (Figure 1) allows users to either create a new account by signing up or log into their existing account. If a user creates a new account, they are taken to the sign up screen (Figure 2). This screen prompts the user to enter their first name, last name, year, email, and password. Once complete, the new user’s information is stored in a cloud-based Google Firebase database. When an existing user logs in, they are taken to the log in screen (Figure 3) where they are prompted to enter their email and password. The entered email and password are authenticated with the Google Firebase to determine if the information matches a user in the database. If the information is incorrect, the user is shown an appropriate error and are able to try again. If the user forgets their password, they are able to reset their password by having a reset password email sent to them. However, only email addresses that are associated with an existing user can be sent reset password emails. Once the correct log in information is given, the user is taken to the home screen (Figure 4). This screen gives users access to see program requirements, complete logs, view a calendar of events, or check account information. The next step in my Capstone project is to create content for each of the tabbed screens on the home screen.



Figure 1. Welcome Screen.

Figure 2. Sign Up Screen.

Figure 3. Log In Screen.

Figure 4. Tabbed Home Screen.










The main issues that I have encountered so far are simply learning how to use Xcode to create the app. I have never worked with Xcode before, and finding articles and/or YouTube videos that have reliable information pertaining to what I want to accomplish can be challenging. So far, the YouTube channel CodeWithChris has been the most helpful. Although reading articles and watching videos has been extremely helpful, sometimes I encounter an error in Xcode that isn’t mentioned in the article or video. When this happens, I have to find the issue on my own. Since I am still getting familiar with Xcode, troubleshooting to find the issue can take a significant amount of time. I believe that setting up and retrieving information from the database is the hardest part of creating the app, so since that is already completed, I’m hopeful that my issues with Xcode will be minimized for the rest of the project.