Skip to content

Ideabox is a simple application that allows users to create a pool of ideas and promote collaboration

License

Notifications You must be signed in to change notification settings

Mcdavid95/Idea-Box

Repository files navigation

Idea-Box

hound status Build Status Coverage Status Code Climate

Description

Ideabox is a simple application that allows users to create a pool of ideas and promote collaboration.

Features

  • User Registration and Login pages
  • User should create new Ideas
  • User should edit Ideas
  • User can make Ideas either public or private
  • Users can comment on public Ideas
  • Reset passsword
  • Share public Ideas on Twitter
  • Use MarkDown
  • Filter Ideas by Category

Tecnologies Used

API

  • JavaScript(Node) - API
  • MongoDB - for data persistency

Frontend

  • JavaScript(REACT-REDUX) - Frontend
  • HTML and SCSS - Front-end Display

Dependencies

The functionality of this web app being a node.js app depends on the following technologies.

Express.js: A Fast, opinionated, minimalist web framework for node which was used in routing this application.

BodyParser: This module was used to collect search data sent from the client side to the routing page.
Babel: This project is written in ES6, babel transpiles the code to ES5.
Mongoose: Sequelize is a promise-based Node.js ORM for Postgres Server which is the database server for the APP . It features solid transaction support, relations, read replication and more.
Postgresql: PostgreSQL is a powerful, open source object-relational database system.
Webpack: webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in browser, it is also used for transpiling scss to css.
React: A javascript library for building user interfaces.
Redux: Redux is a predictable state container for JavaScript apps.
Json Web Token: JSON Web Token (JWT) is a compact URL-safe means of representing claims to be transferred between two parties.

Installation

  1. Install nodejs and postgresql if not installed.
  2. Navigate to the directory you want it installed to. cd your folder
  3. Clone the repository https://github.com/Mcdavid95/Idea-Box.git.
  4. Create a database with MongoDb.
  5. Open the Idea-Box folder.
  6. Create a .env file using the .envexample as a guide.
  7. npm install to install all dependencies.
  8. npm run dev-build to build the app.
  9. npm start starts the app.
  10. The app runs on port 3000
  11. npm run test runs the server test.
  12. npm run client-test runs the client-side test
  13. The API can be consumed with postman.

Test

API test is written with mocha and supertest. Frontend tests is written with jest and enzyme.

Limitations.

  • The fetching of messages of this project is not real time.
  • The In-app Notification system of this project is not set up
  • Users can't be removed from a group Yet.
  • Messages can't be edited or deleted.

Documentation

The API documentation for this project can be found here

How to Contribute

The project is open for contribution. You can start by forking this project repo. If you have improvements you want to add, feel free to do so and create a PR against development branch

License

MIT

FAQs

  • Is this an open source application? Ans: Definately it is.
  • Can I use it for commercial use or profit making? Ans: Yes you can?
  • Can I contribute to this project? Ans: Yes anyone can contribute.
  • How do I contribute? Ans: Create your own branch and raise a PR against development

About

Ideabox is a simple application that allows users to create a pool of ideas and promote collaboration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages