My-Tutorials is a platform where students could seek for tutorials as well as tutors could register tutorials. The website is lightweight, interactive, RESTful, could support reasonable size Database. The front-end and back-end are powered by Vue.JS and Node.JS respectively.
- Users sign-up and log-in/log-out
- Users browse through tutorials
- Users browse through tutor profiles
- Users register new tutorials
- Users enroll in selected tutorials
- Users view tutorial enrollment history
- Users view tutorial creation history
- Users provide feedback upon finish tutorials
- Users view their feedback and received feedback
Users can also:
- Edit profile page, update personal information
- Check tutorial history
My-Tutorials uses a number of open source projects to work properly:
- Vue.js - The Progressive JavaScript Framework
- Node.js - Asynchronous event driven JavaScript runtime for the back-end
- Express - Fast Node.js web application framework
- Webpack - A static module bundler for modern JavaScript applications
- Babel - A JavaScript compiler
- Element - Vue 2.0 based component library
- Gulp - Automation toolkit for front-end development
cd front-end
npm install
npm run serve
npm run build
npm run lint
cd Server
npm install gulp-cli -g (if you haven't install gulp)
npm install --save-dev gulp
gulp serve
File names must be all lowercase and may include underscores (_) or dashes (-), but no additional punctuation. Follow the convention that your project uses. Filenames’ extension must be .js.
Source files are encoded in UTF-8.
Aside from the line terminator sequence, the ASCII horizontal space character (0x20) is the only whitespace character that appears anywhere in a source file. This implies that All other whitespace characters in string literals are escaped, and Tab characters are not used for indentation
Ordinary string literals are delimited with single quotes ('), rather than double quotes (").
Braces are required for all control structures (i.e. if, else, for, do, while, as well as any others), even if the body contains only a single statement. The first statement of a non-empty block must begin on its own line.
Block comments are indented at the same level as the surrounding code. They may be in /* … / or //-style. For multi-line / … */ comments, subsequent lines must start with * aligned with the * on the previous line, to make comments obvious with no extra context. “Parameter name” comments should appear after values whenever the value and method name do not sufficiently convey the meaning.
Declare all local variables with either const or let. Use const by default, unless a variable needs to be reassigned. The var keyword must not be used. One variable per declaration Every local variable declaration declares only one variable: declarations such as let a = 1, b = 2; are not used.
Constructors are optional for concrete classes. Subclass constructors must call super() before setting any fields or otherwise accessing this. Interfaces must not define a constructor.
Class, interface, record, and typedef names are written in UpperCamelCase.
Method names are written in lowerCamelCase. Private methods’ names must end with a trailing underscore.
Constant names use CONSTANT_CASE: all uppercase letters, with words separated by underscores
Use HTML5. HTML5 (HTML syntax) is preferred for all HTML documents: .
Use only lowercase. All code has to be lowercase: This applies to HTML element names, attributes, attribute values (unless text/CDATA), CSS selectors, properties, and property values (with the exception of strings).
Indent by 2 spaces at a time. Don’t use tabs or mix tabs and spaces for indentation.
Use meaningful or generic ID and class names.
Vue.js does not support IE8 and below, because it uses ECMAScript 5 features that are un-shimmable in IE8. However it supports all ECMAScript 5 compliant browsers.