Skip to content
Helps organizations take charge of their people's well being and promote healthier lifestyles through fitness competitions. Built on Node.js
Branch: master
Clone or download
govindrai Merge pull request #106 from govindrai/feature/stats
Add initial stats view and stats calculating methods
Latest commit 3a7beab May 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add dummy circleci config to test ci/cd job May 16, 2019
bin Remove css files from repo (only keep SASS) and update key files to s… May 13, 2019
config Update authentication to use access/refresh token concept, remove exp… May 19, 2019
middleware Fix bug where accessToken was being checked as refreshToken May 21, 2019
models Add initial stats view and stats calculating methods May 21, 2019
public Get no_challenges view beefed up with stats, update participation to … May 15, 2019
routes Add initial stats view and stats calculating methods May 21, 2019
utils Update authentication to use access/refresh token concept, remove exp… May 19, 2019
views Add initial stats view and stats calculating methods May 21, 2019
.eslintrc.js Async refactor + reunderstanding codebase WIP May 7, 2019
.gitignore Remove css files from repo (only keep SASS) and update key files to s… May 13, 2019
README.md Fix ordering of routes to avoid incorrect fuzzy matching, make typeah… Oct 7, 2017
fitness-challenge.db Check if username already exists within database Mar 1, 2017
index.js Add initial stats view and stats calculating methods May 21, 2019
package-lock.json Update authentication to use access/refresh token concept, remove exp… May 19, 2019
package.json Update authentication to use access/refresh token concept, remove exp… May 19, 2019
webpack.config.js Resolve merge conflict May 15, 2019

README.md

Lambda Phi Nu Fitness App

Custom Node.js app built for UC Irvine's professional co-ed business fraternity, Lambda Phi Nu (LPN), to support an initiative for having all constituents stay healthy and take charge of personal health.

Preface

Although created specifically for LPN and it's specifications, this app is open source under an MIT license. You can use this app in your own organizations and we highly recommend collaboration. Feel free to fork the project and create your own version of the application or submit pull requests to further the app.

Background

LPN is comprised of seven distinct houses: Alexandrite, Emerald, Iolite, Ruby, Sapphire, Sunstone and Topaz. To promote a healthy lifestyle, LPN hosts nine week fitness challenges, where different houses in LPN go head to head every week to compete for most points through various fitness activities with the higher averaging house earning the win. Each team plays one another (first 7 weeks), and the top four teams make it to the playoffs (final two weeks).

Problem

Traditionally, the fraternity implemented the competition through Google Sheets. However, as the challenge grew, so did its complexity and time required to manage the program. In additon, the user experience, or lack therof, has been a key factor in deterring participation. Here are some screenshots for perspective:

Old View of Competition Schedule

Old View of Scoreboard

Having once been a part of this fraternity and having web development experience, I saw this as a perfect opportunity to practice my skills and give back to an organization that helped me shape my career and make lifelong friendships.

Authors

  • Cally Dai - UX/UI Designer
  • Govind Rai - Full Stack Web Developer
  • Vilde Vevatne - Full Stack Web Developer

Technology Stack

Backend & ORM Frameworks Frontend Authentication & Authorization Other
Node.js Express.js Pug.js JSON Web Token Lodash.js
MongoDB Typeahead.js Bcrypt
Mongoose.js SASS
Redis jQuery

Feature Roadmap

Implement secret code during registration

  • Currently anyone can register and gain access to the application

Todos

  • families/:familyName
    • Display all participants (in a table format) from family who are participating, ordered by total contribution on current challenge
      • Table Head needs to be Monday-Sunday with respective dates
      • clicking on a certain date should trigger points
    • Display the name of user + nickname
    • Total points (all time)
    • Points for current challenge
    • If not participating, then show message that suggests you sign up for challenge
  • challenges/index
    • Display challenges in right order on challenges index
  • challenges/new
    • For new challenges, ensure end date is after start date
    • Automate dates so only start date is necessary
    • Add field for weeks
    • Days or time remaining until registration deadline (challenges index) + until current challenge ends
    • Do not allow concurrent challenges
You can’t perform that action at this time.