Pitch Video Link
I don't have accounts on Youtube, Facebook Video, Vimeo, or Youku so here's an alternate link via Google Drive. https://drive.google.com/file/d/1TPh9r_k9nY8AEljuMqXECaeI-MEYliej/view?usp=sharing
Competition Note
For the Hackathon, I would like to be considered for the Beginner category, given that I am not too experienced in programming (this app took quite a long time to be developed to the quality it is now).
Inspiration
I was inspired to do this when I discovered App Lab's createRecord() function while coding an app in AP Computer Science Principles. I wanted to see if I could possibly use it to make accounts -- if so, it would help me for the final project in the course. Additionally, given this was a new idea that I had not seen examples of elsewhere, I felt it was a good challenge for my entry-level skill in programming.
What it does
This app allows the user to create or log in to an account, which is saved by the App Lab. Once logged in, the user can play one of three games (all are accessible via menu) and the info on the game (i. e. high score) will be saved to their account.
This app features
- A method for users to create their own accounts, or log in to existing ones.
- Username and password authentication to check each user-entered value.
- If usernames are in use by another account, begin with a number, or are empty space, they are not allowed.
- If the input to the "Confirm Password" section does not match the input to the "Password" section, this is not allowed. The password given by a user is also evaluated for strength, based on what case is used and the length.
- Built-in (and fully interactive) mini games that the user can scroll through a list of. There is Smiles & Frowns, a mouse game with the two titular icons, Rock Paper Scissors, and a Guess the Number game to guess between 1 and 10.
- Mechanisms to save the user data. For Smiles & Frowns, the high score; for Rock Paper Scissors the latest win streak; and for Guess the Number, the last amount of guesses.
How I built it
I built the app by starting with the basic plan in mind, then implementing it. I knew I wanted the user to create accounts, then login to them. With this idea, I brainstormed further features that would go along with it (for instance the password and username authentication systems). I first built the screens in the App Lab, making sure they had all the inputs and outputs I wanted. Then, I added code to them as it followed my plan. I also made sure that my design approach was flexible throughout making the project. One time in particular, I made significant changes to my app in order to change to a more interactive idea.
Challenges I ran into
- Initially the project scope seemed beyond me (especially working on a tight schedule). I was not sure how much work I had to do; however, I resolved to complete the project and it worked out in the end.
- The authentication systems for user inputs had to be reworked several times in order to be perfect. Each time, however, I could see clear improvements.
- I changed ideas from saving custom info to the accounts; to playing games and saving the game info. This was quite a large-scale change, requiring me to redesign my screen and code in regards to those areas.
- The create account button had several glitches, which resulted in an improper login. I had to test the create feature with useless accounts, leading to multiple resets where I had to delete the dataset and recreate it.
Accomplishments that I'm proud of
- I was able to complete the app, demonstrating to myself and others that it was possible to create an app that saved and allowed access to user-created accounts. As such I will most likely be reusing the basic ideas that were successful in this app.
- I solved all the glitches I found in the app, making sure that none were left unfixed.
- I made the app completely on my own, incorporating and extending what programming knowledge I had to make it.
What I learned
- I learned it is possible to make accounts in the App Lab, and save information to them.
- I learned a while loop is an effective way of deferring/delaying commands in a sequence without the use of time controls.
What's next for Account Maker - Prototype
I will almost certainly using the features I created here in my Create Performance Task for AP CSP. Thus I am especially glad I was able to complete it.
I intend to share the ideas behind the app -- perhaps the app itself as well -- to the rest of my AP CSP class, and so benefit them by allowing them to incorporate the concepts into their own future apps. Thus I feel this app will be beneficial to a large group of people who would use and learn from it.
Note for using the app
If you decide to try the Account Maker, enjoy! However, please do not spam-create useless/throwaway accounts as the app will become bogged down with excess data. Also, make sure sound is on -- it adds an extra layer to the experience.
Built With
- code.org
- javascript
Log in or sign up for Devpost to join the conversation.