Build a better website for NCKU CSIE.
- Use Unix-like OS.
- Get Node.js from official website.
- Clone from GitHub
git clone https://github.com/toolbuddy/NCKU-CSIE-Website.git
- Install dependencies
npm install
- Build
- Setup server configuration files
- Create server configuration files by running:
npm run pre-build:server - Filling-in information required by
settings/server/config.js.- Fill in
domainNamefor server domain name information. - Fill in
protocol, either'http'or'https'. - Fill in
portfor server port information. - Fill in
hostandstaticHostinformation.
- Fill in
- Create server configuration files by running:
- Setup database configuration files
- Create database configuration files by running:
npm run pre-build:database
- Filling-in information required by
settings/database/config.js.- Fill in
usernameandpasswordfor database authentication information - Fill in
domainNamefor database domain name information - Fill in
portfor database server port information (not required in develop mode). - Fill in
dialectwith database you use. - If you are a developer and need to connect to our database, please contact us.
- Fill in
- Create database configuration files by running:
- Copy
tinymceresourcesnpm run pre-build:tinymce
- Build Server, HTML, CSS and ECMAScript files by running:
npm run build
- Setup server configuration files
npm startnpm run developThis project is run on Node.js. We use a lot of tools to help develop (ex. Pug (HTML5), Sass (css)), and we use linters to unify coding style. Please check the following before you submit a pull request.
- ECMAScript ( JavaScript )
- ES6+ syntax supported.
- camelCase naming style.
- Lint ECMAScript files with following commands:
- Frontend:
npm run lint:js - Backend:
npm run lint:server
- Frontend:
- Build ECMAScript files:
npm run build:js
- HTML
- Using Pug template engine.
- HTML5 semantic tags only (don't use tags like
div,i,b, etc). - Lint Pug files by running
npm run lint:html. - Build HTML files:
npm run build:html
- CSS
- Using Sass.
- CSS3+ syntax supported.
- BEM naming convention:
- Block: Control layout of its elements (structure).
- Element: Control outfit of itself (skin).
- Modifier: Modified style of specific element.
- Lint SCSS files by running
npm run lint:css. - Build CSS files:
npm run build:css
- Git
- Using Git flow as development standard.
- Following branches are used:
master: Major stable version.release: Ready to release version, need test to be proof stable.develop: Develop version, not yet ready to publish.feature-*: New feature, may or may not be merge back todevelop.hotfix-*: Quick fix for major version.
- We use
webpack --watchto monitor files change. Some Linux OS will complain about watching too many file, run the following command to fix this issue:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -pWe are going to build a website which have following feature:
- Frequently updated information about NCKU CSIE.
- Fancy UI to attract students to contribute.
Anyone can help us to make this project better! Feel free to contact us if you have question.
Special thanks for
- Designer: lanhsincheng and Cindy.
- Active Developer: ProFatXuanAll, kaeteyaruyo, AmyLin0210, Rispolyv0n.
- Participant: danielian1121, ya-sin, yellow951321, aqwefghnm, eecheng87, Kazumachi124170, k32367mdbf, wang0630, Darkborderman.
- Founder of Toolbuddy Organization: kevinbird61