Skip to content

Repository files navigation

Activity Tracker

Activity Tracking App built with Meteor.

Demo here: withpulp.meteor.com.

Roadmap

Features

  • Time tracking algorithm
    • tracks when user registered
      • tracks when user enters event
      • tracks when user pauses event
      • tracks when user quits event (deletes account)
      • tracks streaks of consecutive days (sort by highest to lowest)
      • sort users with longest streaks
  • CRUD events
  • Login/Register and OAUTH (facebook, twitter, google)
  • ShareIt - share exploits on social media

Core Stories

Social Sign In
When I'm ready to track an activity
I want to sign in using Twitter, Google, Facebook So that I can quickly access my profile
Tracking Initiation
When I'd like to track an activity
I want to be able to automate the tracking
So that I can make more productive use of my time
Daily Tracking
When I'm tracking an activity
I would like to show intent on a daily basis
So that I can keep a daily tally of my commitment
Current Streak
When I've started an activity
I want to see how long my current streak is
So that I can gauge my progress
Longest Streak
When I've started an activity
I want to see how long my longest streak was
So that I can gauge my progress
Multiple Events
When I've started a new activity
I want to be able to track it alongside other activties
So that I can learn about my strengths
Leaderboard
When I'm tracking an activity
I want to see how I'm doing compared to others
So that I can fuel my motivation

Views

  • Leaderboard
  • Dashboard

How to use

Requirements

Make sure Meteor is installed and up to date or run:

curl https://install.meteor.com/ | sh

Installation

git clone git@github.com:amazingBastard/activity-tracker.git
cd activity-tracker
meteor

Deployments

It is highly recommended to use Meteor Up for easy deployments. Have a look at the repository for more information.

SEO and other concerns

Meteor cannot do SEO

This statement is only partially true, since there is a package called ms-seo, which has a lot of neat little tricks to help web crawlers notice your app the way you want them to. Use constants under client/lib/constants.js for the app. Change SEO settings inside the routes like that.

Router.route('/about',function(){this.render('about');// Using the app constantsSEO.set({title: 'About -'+Meteor.App.NAME,og: {...}});});

Adding allow rules for external URLs

The browser-policy adds rules to deny all operations from external URLs. This helps dealing with clickjacking and other XSS methods used to attack the client. To whitelist a url, add following to server/config/security.js

BrowserPolicy.content.allowOriginForAll(YOUR_URL);

Other security enforcing packages like audit-argument-checks and matteodem:easy-security have also been added.

Structure

Packages used

The "insecure" and "autopublish" packages are removed by default (they make your app vulnerable).

Folder structure

client/ # Client folder
compatibility/ # Libraries which create a global variable
config/ # Configuration files (on the client)
lib/ # Library files that get executed first
startup/ # Javascript files on Meteor.startup()
stylesheets # LESS files
modules/ # Meant for components, such as form and more
views/ # Contains all views
common/ # General purpose html templates
model/ # Model files, for each Meteor.Collection
private/ # Private files
public/ # Public files
routes/ # All routes
server/ # Server folder
fixtures/ # Meteor.Collection fixtures defined
lib/ # Server side library folder
publications/ # Collection publications
startup/ # On server startup

License

This project has an MIT License, see the LICENSE.txt for more information.

About

Activity Tracking App built with Meteor.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages