An App allows users to create their own learning curriculum
Curriculum App
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.
Running Locally
Run the Front-End
- Clone this repo
cd curriculum-front
npm i
npm run serve
Run the Back-End
- Open another terminal tab or window
cd curriculum-back
npm run setup
npm start
Tech Stack
- Vue.js/Vue Router/Vuex
- Vuetify
- Node.js/Express.js
- MongoDB/Mongoose
- Digital Ocean (hosting)
Mockups
Design
Color Palette: 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
- Home Page with list of curriculums
- Form Page to create/update a curriculum
- User can delete a curriculum
Version 1 Features
- Users can log in and save their curricula
- Users can fork other users curricula