Live Site | Project Wiki | Report Bug
Ultimate Accelerator is a companion application for Respawn Entertainment's video game Apex Legends. In Apex Legends, the Battle Pass is a system that rewards players for accruing stars and "leveling up" their Battle Pass. Players can unlock character cosmetics and in-game currency by advancing their Battle Pass levels. Battle Pass levels increase when the player has accrued enough stars to "level up." Players earn stars by completing daily, weekly, and/or event challenges. This full stack application was designed as my capstone project for App Academy's 24-week Full Stack Software Engineering Bootcamp. It is my best work to date and the, ahem, apex of my abilities.
JavaScript | Node.js | Flask | React | Redux | SQLAlchemy | PostgreSQL | Docker
- Clone the project repository
git clone https://github.com/cat-friend/ultimate-accelerator.git
- Install dependencies
pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
- Create a local .env file modeled after the .env.example file in the root directory
FLASK_APP=app
FLASK_ENV=development
SECRET_KEY=<<YOUR-SECRET_KEY>>
DATABASE_URL=postgresql://ultimate_accel_dev:<<PASSWORD>>@localhost/ultimate_accel_db
-
Set up your PostgreSQL user (
ultimate_accel_dev
), password, and database (ultimate_accel_db
). Make sure that these values match your .env file! -
Access your
pipenv shell
, migrate your database, seed your database, and run your flask app with the following commands:
pipenv shell
flask db upgrade
flask seed all
flask run
In the future, if you'd like to unseed and reseed the database, you can run
flask seed reset
Caution! This will delete all data in your database.
- To run the React App,
cd
into thereact-app
directory, installreact-app
, and then start React:
cd react-app
npm install
npm start
Full user stories for the initial development phase are available on the User Stories section of the project wiki. A feature list for the initial development phase is available on the Feature List section of the project wiki.
New users can register for an account by entering a unique username, email address, and password. If the username is already taken, the email address provided is invalid or already in use, and/or the password is invalid, the user will be notified of the specific errors.
Existing users can log in to their account by submitting their credentials via the login form. If there are any issues with their provided credentials, the user will be notified of the errors. Users may log out of their account by clicking the LOGOUT button on the site-wide navigation bar.
Authenticated users can create a battlepass challenge with a title, mode type, and value (stars). If there are any issues with their provided data, the user will be notified of the errors.
All authenticated users can view the other user's Battle Pass Challenge information.
When viewing their own Battle Pass Challenges, they may add, edit, or delete challenges. Users can edit the status of their Battle Pass Challenge to a status of open
, in progress
, or completed
.
If a user is not currently a member of a clan, they may create one (1) clan.
If a user is an administrator of a clan, EDIT
and DELETE
buttons will appear when they navigate to their clan's page.
If a user is currently a member of a clan, they will be notified that they are unable to create a clan.
If a user does not wish to create their own clan, they can join a clan by navigating to that clan's page. Their name will immediately appear in the clan members list.
If a user would like to leave their clan, they can do so by navigating to their clan's page and clicking the Leave
button. Their name will immediately disappear from the clan members list.
All frontend routes are covered in detail on the Fronted Routes section of the project wiki. Frontend routes were designed to enable users access to basic functionality such as:
- registration;
- authentication;
- viewing, creating, updating and deleting challenges;
- viewing, creating, updating, deleting, joining, and leaving clans (groups).
All frontend routes are covered in detail on the API Routes section of the project wiki. API routes were designed for users to interact with a page without being redirected.
Battle Pass Challenges are based on play modes, playable characters (legends), or weapons and challenge types. I analyzed relevant raw data from Apex Legends in order to programmatically identify, categorize, and create new database entries based on user input challenge data. For a full write up, see Data Analysis.
Almost all text on the app has a contrast ratio of at least 7.00 and is sized in rem
units.
Battle Passes are season-specific. A season in Apex Legends usually lasts about 11 weeks. Prior to the launch of a new season, Respawn announces when the next season will launch and end. A future feature will be database archival of season data, creation of a new season's challenges database, and updating user statistics.
Big thank you to everyone who's been with me along the way. Specifically:
- Blueberry Smith for helping me after I've struggled. Giving me room to grow (and carrying me to plat) is the best gift;
- Dolph Squid for the inspiration and for being a great frond, good job I love you!;
- Green Pepper for dependable moral support;
- Yellow Yoshi for our late night talks and the Shrek gifs;
- Barry Mattern for being the best cohort lead that anyone in the history of bootcamps anywhere could ever ask for. Thank you for your compassion and empathy. So many of us in the Sept 2021 cohort owe our success to you;
- Thien Dang for giving me a high bar to aspire to;
- Suhayl & Co for everything--this bootcamp has been one of the most enjoyable and pivotal experiences of my life and you played a huge role in that. Every morning for six (6) months, I woke up and open palm slammed a giant smile on my face because I was blessed with the opportunity to learn and develop alongside very compassionate, talented, and intelligent people and to make you laugh so hard via Discord that you have to shut your camera off in Zoom.