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 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.
- Authenticated users can view all the questions they have asked on the platform.
Project is managed here using the project management tool, Pivotal Tracker.
UI templates are hosted on Github pages here
- 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.
- Install NodeJs and PostgreSQL on your computer.
- Clone this repository using
git clone https://github.com/PriscillaSam/Stackoverflow-Lite.git
. - Set up your environment variables in a
.env
file. Follow the pattern in theconfig/config.js file
. - Create your development and test databases and add their credentials to the
.env
file. - Run
npm install
to install all dependencies. - Run
db:migrate
to setup yourdatabase. - Run
db:seed
to seed your database with data. Optionally rundb:setup
to both setup and seed your database. - Run
npm run start: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.
- Run
npm test
. This runs tests and displays coverage data generated by Istanbul's nyc.
- Sam-Iduh Priscilla.