Ideabox is a simple application that allows users to create a pool of ideas and promote collaboration.
- 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
- JavaScript(Node) - API
- MongoDB - for data persistency
- JavaScript(REACT-REDUX) - Frontend
- HTML and SCSS - Front-end Display
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.
- Install nodejs and postgresql if not installed.
- Navigate to the directory you want it installed to. cd your folder
- Clone the repository
https://github.com/Mcdavid95/Idea-Box.git
. - Create a database with MongoDb.
- Open the Idea-Box folder.
- Create a .env file using the .envexample as a guide.
npm install
to install all dependencies.npm run dev-build
to build the app.npm start
starts the app.- The app runs on port 3000
npm run test
runs the server test.npm run client-test
runs the client-side test- The API can be consumed with postman.
API test is written with mocha
and supertest
.
Frontend tests is written with jest
and enzyme
.
- 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.
The API documentation for this project can be found here
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
- 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