Wiki-What is a fully-functioning site to allow public and private user-created wiki content. It was built as back-end project to utilize full RESTful API architecture primarily by using Node.js and Express 4. It is built with usability in mind and a clean responsive design (Something missing from most of the those other "Big Wiki" sties.)
Wiki-What was a project that was part of my Bloc Mentorship Program curriculum. We were tasked with building a functioning wiki site using the Agile process and with only user stories given to us.
- Full REST API using built using Node.js and Express for users and wikis.
- API is modular to allow for easy scaling and feature addition. Separation of concerns was carefully thought out in the build process.
- Databases for wikis and users use PostgreSQL with Sequelize as the ORM.
- Two user classifications are built in for free and premium users who can access extra features.
- Premium users can add private wikis that are only available to other premium users. They also can add and edit the collaborators of private wikis. Private wikis are marked with a lock when browsing.
- Passport utilized for user sign-up and authentication.
- Stripe payments were used to upgrade premium users.
- PureCSS was used for a mobile responsive grid layout. Other styling was built using Sass for a clean and modern look.
- Wikis are edited using markdown in the browser. It has been tailored to have keep a clean and modern look, and has a styling guide for users to follow.
- Integration and unit testing was done using Jasmine.
https://wikiwhat-theranbrig.herokuapp.com
Free user login:
Email: [email protected] Password: password
Make sure you have Node.js, PostgreSQL, and the Heroku Toolbelt installed.
Download and install dependencies.
git clone [email protected]:theranbrig/wiki-what # or clone your own fork
cd wiki-what
npm install
Check that src/db/config/config.json
is setup like below (You may need to change your "username" and "password" depending upon your local setup) and make sure that Postgres is running:
{
"development": {
"username": "postgres",
"password": null,
"database": "blocipedia-dev",
"host": "127.0.0.1",
"dialect": "postgres",
"logging": false,
"operatorsAliases": false
},
"test": {
...
},
"production": {
...
}
}
Init and seed database :
sequelize db:migrate
sequelize db:seed:all
Run the project :
npm start
Your app should now be running on localhost:3000.
heroku create
git push heroku master
heroku open
Theran Brigowatz is a Full-stack Web Developer currently out of Seoul, South Korea, but transitioning back to the US. Check him out at the following:
Made with ❤️ and ☕.