faraday-academy / curriculum-app

Create, share, and keep track of your learning curricula.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Curriculum App

This project is currently in beta and hosted at: studytracker.tech. See the version 1 roadmap here.

This app allows users to create their own learning curriculum. They can then keep track of their progress, share it with friends, and make changes as they go along.

To see the playlist where I livestream the building of this app, click here.

Table of Contents

  1. Running Locally
  2. Tech Stack
  3. Mockups
  4. Design
  5. Routes
  6. Schema
  7. API
  8. MVP Features
  9. Version 1 Features

Running Locally

Run the Front-End

  1. Clone this repo
  2. cd curriculum-front
  3. npm i
  4. npm run serve

Run the Back-End

  1. Open another terminal tab or window
  2. cd curriculum-back
  3. npm run setup
  4. npm start

Tech Stack

  1. Vue.js/Vue Router/Vuex
  2. Vuetify
  3. Node.js/Express.js
  4. MongoDB/Mongoose
  5. Digital Ocean (hosting)

Mockups

Home Page Mockup

User Dashboard Mockup

Create or Update Page Mockup

Display Curriculum Page Mockup

Design

Color Palette: color palete for application 710627 - EA5455 - FAA275 - F5E4C3 - 34A7B2

Routes

  • / --> Home Page/Landing Page
  • curricula --> shows all curricula
  • curricula/create --> shows form to create
  • curricula/id --> shows single curriculum
  • curricula/id/update --> update single curriculum

Schema

Curriculum

  • id: UUID (pk)
  • name: string
  • goal: string
  • description: string
  • sections: [object]
    • name: string
    • resources: [object]
      • isCompleted: boolean (default: false)
      • name: string
      • url: string
    • projects: [object]
      • isCompleted: boolean (default: false)
      • name: string
      • url: string
  • createdBy: Mongo object id (userId, foreign key)
  • createdAt: timestamp
  • updatedAt: timestamp

User

  • username: String
  • email: String
  • password: String (hashed password)
  • isVerified: Boolean
  • createdAt: timestamp
  • updatedAt: timestamp

Verification

This is just to store and expire verification codes that are sent to user by email.

  • userId: Mongo object id (userId, foreign key)
  • code: Number

API

Prefix: /api/v1

Endpoints:

/curricula

  • get
  • post

/curricula/:id

  • get
  • patch
  • delete

/count

get the ratio of completed tasks for each curriculum

  • get

MVP Features

  1. Home Page with list of curriculums
  2. Form Page to create/update a curriculum
  3. User can delete a curriculum

Version 1 Features

  1. Users can log in and save their curricula
  2. Users can fork other users curricula

About

Create, share, and keep track of your learning curricula.

License:Mozilla Public License 2.0


Languages

Language:Vue 48.7%Language:JavaScript 38.3%Language:Shell 6.7%Language:CSS 2.5%Language:Sass 2.2%Language:HTML 1.1%Language:Dockerfile 0.4%