A platform for users to ask questions and give answers to asked questions.
- Users can create an account and login.
- Authenticated users can post questions.
- Authenticated users can delete their questions.
- Authenticated Users can post answers to questions.
- Users can view answers to questions.
- Users can mark an answer as the accepted answer to their question.
- Authenticated users can view all the questions they have asked on the platform.
- Authenticated users can upvote or downvote an answer.
- Users can search for questions on the platform.
- Authenticated users get a notification when an answer is given to their question.
Project is managed here using the project management tool, Pivotal Tracker.
UI templates are yet to be hosted
- NodeJs - Run time environment.
- ExpressJs - Web framework.
- PostgreSQL - Object relational database.
- Babel - Javascript compiler.
- Eslint - Javascript linter. Airbnb style guide was followed.
- Mocha - A Javascript test framework.
- Chai - Assertion library.
- Istanbul - Javascript code instrumenter.
- nyc - Istanbul's command line interface.
- coveralls - lcov posting to coveralls.io
- Install NodeJs and PostgreSQL on your computer.
- Clone this repository using
git clone https://github.com/ogwurujohnson/stackoverflow-LITE.git
. - Set up your environment variables in a
.env
file. Follow the pattern in theconfig/config.js file
. - You would find a sample.ennv file in your root folder, it contains samples of what you need to add to your .env file.
- For development Create DB
devstackoverflow
and Production Create DB namedstackoverflow
and for test create DBtravis
- Run
npm install
to install all dependencies. - Run
npm run migration
to run DB migrations. - Run
npm run dev
to start the server. - Navigate to localhost:3000/api/v1 in your browser to access the application.
Requirements
- Postman - API development and testing environment.
Testing with Postman
- Install Postman by following the link above.
- Navigate to
localhost:3000
in Postman to access the application. - Use the API Documentation to access the endpoints available (link will be available soon).
Running unit tests.
- In an open terminal, navigate to the cloned project file.
- Before running test, please change
NODE_ENV='test'
, still looking for a fix for this - Then on your console run
npm run migration
- Run
npm run test-travis
. This runs tests and displays coverage data generated by Istanbul's nyc.