Rubric
Task: Develop A Personal Website.
Week 1 - Build the basic structure of the website. Requirement1 - 6 (updated):
- Initialization:
- Specify a start entry (package.json) (1)
- Using npx to execute npm packages, where npm is the package manager for JS runtime environment Node.js (This was installed earlier). npx is not required for executing, but with it, the command becomes simpler. (2)
- Creating an editor config file (2.5)
- Using es2015/es6 syntax:
- Installing babel which is a transpiler that allows me to use es2015 syntax later. Creating a .babelrc file which configures and can specify features I want to enable. (2)
- Enforcing coding style consistency:
- Using eslint, a JS linting tool, and creating a .lintrc file (1)
- Following Airbnb’s style guide, but override several rules. May override more later. (2)
- Installing eslint parser because es6 doesn’t have default setting for eslint. Babel is also needed to parse es6 for linting.
- npm run lint
- Enforcing lint-checking before making a commit by setting a pre-commit (package.json) (2.5)
- Setting up Express Server:
- Using API framework Express for later development. (app.js) (1)
- create four directories (server for starting the server, routes for routing inside application, views for viewing template (by using Pug, a view engine (2.5)), public is for static assets. (2)
- Using a Module Bundler:
- Using webpack to deal with the dependencies. (1)
- Installing loaders. (2)
- Setting up React
- Creating a source file, and my front-end code goes here later. (1)
(week1 rubric: old version)
-
Requirement 1: Server routers
-
1: Have server routers, but not fully functioning.
-
2: Fully functioning server routers
-
2.5: Follows some lint format
-
-
Requirement 2: Simple rendering
-
1: Show works to to render a webpage, but not fully functioning
-
2: Fully functioning rendering
-
2.5: Follows some lint format
-
-
Requirement 3: Auto rebuild DOM tree after modification
-
1: Show works of rebuild automation, but not fully functioning
-
2: Fully functioning automation
-
2.5: Follows some lint format
-
-
Requirement 4: Change port when port-busy message is detected
-
1: Show works of changing, but not fully functioning
-
2: Fully functioning changing
-
2.5: Follows some lint format. Week 2 - Backend
-
-
Requirement 1: Upload raw data to database
-
1: Data is uploaded but in a rather discretionary manner.
-
2: Data is uploaded, and generally clean.
-
2.5: Data is well-documented, and has a good schema.
-
-
Requirement 2: Write API (if necessary)
- GET: required for the website
-
1: Show works of GET implementation
-
2: Functioning GET
-
2.5: Very robust GET
-
- PUT/POST/DELETE: for debugging/developing purpose, not necessary
- 2.5: implemented
- GET: required for the website
-
Requirement 3: Display API content in a simplified manner
-
1: Show works
-
2: Has some way of showing the fetched data, e.g. by using web address, postman, or other tools
-
2.5: Including pictures
-
-
Requirement 4: Local Cache (if necessary)
-
1: Show works
-
2: Cache working
-
2.5: Cache works in a relatively smart manner Week 3 - Front-end
-
-
Requirement 1: Intro page
-
1: No interaction
-
2: Tabs which directs to different pages
-
2.5: Tabs and includes other features
-
-
Requirement 2: Portfolio page
-
1: No interactions
-
2: Includes different sections
-
2.5: Sections are nicely done
-
-
Requirement 3: Contact page
-
1: No interactions
-
2: Simple contact form
-
2.5: Better contact form
-
-
Requirement 4: Another page (if necessary) Week 5 - Polish frontend and deploy
-
Requirement 1: Add more features - animations (changing colors, fading in/out), modal, carousel...
-
1: Add one
-
2: Add two
-
2.5: Add more than two
-
-
Requirement 2: Add some simple playable contents for visitors
-
1: Show works
-
2: Functioning
-
2.5: Is considered interesting
-
-
Requirement 3: Deploy
-
1: Show works
-
2: Deployed (does not mean public deployment, just some deployment, so others can visit it using a third party tool or something)
-
-
Other:
-
I think I'll probably re-arrange week2&3 requirements because those show be the most time consuming parts for this projects. I'll need to write intro articles, making pictures, and other pre-tech stuff, and I'm going to include these later when developing.
-
Good frontend animation is not easy, I'll decide later if that's fair to be included.