Ideabox is a simple application that allows users to create a pool of ideas and promote collaboration.
- Project stack
- Installation and Setup
- Application features
- Basic Endpoints
- API Documentation
- Testing
- Limitations
- Contributing
- Licence
This project is built with:
- Client-Side: React/Redux
- Server-Side: NodeJS/Express
- Database: MongoDB/Mongoose ODM
To setup this project locally you need to have NodeJs and MongoDB installed.
- Clone this repository.
- Navigate into the project directory.
- Run
npm install
to install required dependencies. - Run
Mongod
to start mongoDB server. - Use
.env.sample
to setup environment variables. - Run
npm run start:dev
to get started.
- Users can create accounts on the application.
- Users can login to the application to access the full features.
- Users can create ideas.
- Users can edit and delete ideas they have posted.
- Users can view all public ideas.
- Users can view an ideas details i.e description, title, dates e.t.c.
- Users can post comments on public ideas.
- Users can search for ideas.
- Users can filter ideas based on category.
- Users can rate ideas.
POST:
/api/v1/users/signup- Creates user account.
POST:
/api/v1/users/signin- Creates user login session.
POST:
/api/v1/idea- Creates idea record.
PUT:
/api/v1/idea/{ideaId}- Updates an existing idea record.
DELETE:
/api/v1/idea/{ideaId}- Deletes an existing idea record.
GET:
/api/v1/ideas- Retrieves list of all public existing ideas.
POST:
/api/v1/idea/{ideaId}/comment- Adds a post comment for an existing idea
PUT:
/api/v1/{ideaId}/rate- Rate an idea
GET:
/api/ideas?caterory=- Filter Ideas by category
- View full documentation here
This app uses the following for testing
mocha/chai
andchai-http
for server-side testingEnzyme
andJest
for client-side testingnpm run test
to run server-side testnpm run test:client
to run client-side test
- You can't upload images.
Follow the listed steps to contribute to this project:
- Fork this repository to your github account.
- Clone your copy of the repository.
- Create your feature branch on your local machine with
git checkout -b your-feature-branch
. - Push your changes to your remote branch with
git push origin your-feature-branch
. - Raise a pull request against the development branch.
- Visit Repo wiki for style guide and conventions.
This project is authored by Ode Gbenga and it is licensed for your use, modification and distribution under the MIT license.