61FIT3MPR
Mobile Programming - Spring 2024
Final Project
I AM A DEVELOPER
Project Overview
“I am a developer” is an interactive entertainment app designed to simulate the
journey of becoming a successful developer. Users start from infancy and progress
through various life stages, learning subjects ranging from mathematics, literature, etc.
to modern programming languages, frameworks, or other IT fields such as
Cybersecurity, Machine Learning, etc. The game operates on a time scale where each
year in the game equates to 12 minutes in real life, offering a dynamic and engaging
experience. Key features include educational progression, decision-making, financial
management, social interactions, and career advancement.
One of the main goals is to prepare you to apply React Native skills to real-world tasks,
or to leave you well-qualified to start a cross-platform project. The final project is
intended to start you in these directions. For group-specific questions regarding
projects, please create a public post on LMS.
Note: Only one group member is supposed to submit the assignment and tag the rest
of the group members (do not all submit separately, or on the flip side forget to tag
your teammates if you are the group's designated submitter). If you do not do this,
then you can submit a regrade request and we will fix it, but we will also deduct 10%.
Project Description
Students must develop an app that follows the given project outline:
Educational Progression: Users start at age 0 and progress through primary
school, secondary school, and high school, choosing the subjects they wish to
study. There are prerequisites for the subjects so that users learn the basic
concepts before progressing. Users also can skip 5 first years since there is
nothing to do or to learn during this period.
Life Choices: At the age of 18, players receive $10,000 from their parents and
must make important life decisions such as education, employment, housing,
relationships, etc. Various features are unlocked when the player reaches a
certain age or fulfills certain conditions, adding depth to the gaming experience.
Main screen interface: The main screen shows a central area where a developer
character types, symbolizing coding activities. A progress bar underneath shows
the progress of a year in the game.
Key features:
➢ Authentication: Users create accounts and log in securely.
➢ Daily Login: Users are motivated to log in regularly with daily rewards.
➢ Career development: Users can find and apply for jobs. Jobs may require
certain skills or conditions, so users must strategically progress. Also, there
are some career opportunities that do not require any skills but age or health
conditions. These jobs often offer a low or medium salary and make health
decrease.
➢ Social interactions: Users can virtually date and form relationships with NPCs
or other players. This includes dating, networking, and making friends. This
feature promotes overall happiness.
➢ Financial management: Users need to manage their finances wisely and
balance expenses with income from work.
Extra features (Not required):
➢ Customizable Avatars: Let users personalize their developer character with
different outfits, accessories, and customization options.
➢ Hospital: Users spend money to promote overall health.
➢ Bank: Allows users to save money or to request loans.
➢ Insurance Services: Users can purchase insurance policies for health,
property, or life insurance. This feature offers users financial protection. For
life insurance, the money will be paid 20% - 80% when users “restart” their
life.
➢ Fitness Center: Users can enroll in fitness programs, hire personal trainers,
and track their exercise routines and progress. This feature promotes overall
health and wellness.
➢ Freelance Marketplace: Users can freelance by completing coding tasks,
projects, or bug fixes for clients worldwide. This feature allows users to earn
extra income and build a professional portfolio.
➢ Startup: Users can launch their own startup, managing aspects such as
product development, marketing, hiring employees, etc. Success can lead to
financial rewards.
➢ Traveling: Users spend time and money to explore different locations and
cultures, gain new perspectives, and potentially unlock unique opportunities.
This feature promotes overall health and happiness.
Dynamic events: Events such as accidents, illnesses, or reaching a certain age
trigger game resets or new challenges. Each event may make users’ health,
money, or both decrease.
Dynamic gameplay: Features are unlocked when the user goes through
different phases of life or fulfills certain conditions. For example, job offers
become available depending on the level of education and skills; or salary raises
based on experience (6 months, 1 year, 2 years, etc.); etc.
Creative implementation: Alternative strategies and approaches to improve
your project are highly recommended. By thinking innovatively and exploring
different perspectives, students can discover new ideas that students may not
have initially considered. This encourages creativity and allows students to
develop additional appealing features. Flexibility and openness to new ideas can
lead to breakthroughs and improve the quality of the project.
Technical implementation: Developed with React Native for cross-platform
compatibility. Firebase integration for authentication, data storage, and user
management. Continuous testing and optimization to ensure performance and
stability.
FAQ
1. Each year in the game equates to 12 minutes in real life, is the pace of the
game's time too fast for decision-making?
Answer: During the initial phase of life, there are 17 * 12 minutes available for
essential basic preparations. From the age of 18 onwards, each in-game year
appears fleeting, equivalent to merely 12 minutes in real life. This scenario
echoes the sentiment of the idiom "Time flies", emphasizing the importance of
making timely decisions to avoid squandering precious opportunities.
2. What happens when users turn off the game? Should data be saved for the
next login?
Answer: Yes, since the game requires authentication, gameplay data should be
synchronized and stored. This ensures continuity, allowing users to pick up from
where they left off in subsequent logins.
3. Must the entire project be fully developed before publishing?
Answer: Not necessary. Prioritize implementing essential features for complete
gameplay due to time constraints.
4. Why is authentication necessary in the game?
Answer: Authentication is crucial for user identification, storing user data, and
maintaining a history of previous gameplay sessions.
5. How can the game limit user age, and what are the implications of aging in the
game?
Answer: The game can limit user age based on factors such as increased risks of
accidents and illnesses as users age. Also, the cost of treatment increases
depending on the severity of the accident or illness. This could lead to the need
for a game reset to start a new life.
Project Structure
The project folder is provided via LMS. There are some extra remarkable folders: DOC
(Final report), DESIGN (.png design files), GUIDE (how to install and use), RUN (sample
run images), SLIDE (presentation slides on how you built its components, screens, etc.,
step by step).
Submission
Compress all the folders into a .zip file named: 61FIT3MPR_Final_Project_<your
group ID>.zip
Submit the .zip file (max size = 100MB) on LMS using your own account.
Note: If you use some graphics program such as Adobe Photoshop or Illustrator to
create your images, you don’t have to include the design files (.psd, .ai, …) in your
folder. Additionally, we do not need the folder “node_modules”, so please remove it
from the project folder.