https://github.com/kenec/postit
A simple application that let logged in users post messages to the groups belonged to
https://github.com/kenec/postit
groups heroku messages postit priority priority-level reducer search sequelize-cli
Last synced: 4 months ago
JSON representation
A simple application that let logged in users post messages to the groups belonged to
- Host: GitHub
- URL: https://github.com/kenec/postit
- Owner: Kenec
- License: mit
- Created: 2017-07-03T09:47:28.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-03-24T11:57:41.000Z (almost 8 years ago)
- Last Synced: 2025-04-07T06:19:38.188Z (10 months ago)
- Topics: groups, heroku, messages, postit, priority, priority-level, reducer, search, sequelize-cli
- Language: JavaScript
- Homepage: https://postit-lite.herokuapp.com/
- Size: 50.6 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/Kenec/PostIt)
[](https://coveralls.io/github/Kenec/PostIt?branch=master)
[](https://codeclimate.com/github/Kenec/PostIt)
# PostIt
PostIt is an application that allows an authenticated user create a broadcast group and add members to that group for notifications.
Features:
- User can signup and signin to the application
- User can create a new group and be added to other groups
- User can post messages to groups belonged to
- Messages have priority of `Normal`, `Urgent`, `Critical`
- User will receive notifications for messages posted to the groups belonged to
- Notification can be in-app notification, email and/or SMS based on the message priority
### API Documentation
The Documentation for the PostIt Restful API:
[PostIt Restful API Documentation](https://app.swaggerhub.com/apis/Kenec/PostIt/1.0.0)
## TECHNOLOGIES
#### Client Side:
The frontend was implemented using:
* [React](https://reactjs.org/) A JavaScript library for building user interfaces
* [Redux](https://redux.js.org/) Redux is a predictable state container for JavaScript apps.
* [Bootstrap](http://getbootstrap.com/) Build responsive, mobile-first projects on the web.
#### Backend
The Backend was implemented using:
* [Node](https://nodejs.org/en/) Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine
* [Express](https://expressjs.com/) Express is a minimal and flexible Node.js web application framework
* [Sequelize](http://docs.sequelizejs.com/) Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, SQLite and MSSQL
* [Postgres](https://www.postgresql.org/) A powerful, open source object-relational database system.
### INSTALLATION
* install [Node js](https://nodejs.org/en/) and [Postgress](https://www.postgresql.org/)
* Clone the repository `git clone https://github.com/Kenec/PostIt.git`
* Navigate to the location in your terminal
* Run $ npm install to install dependencies
* Setup Postgres, create a database postit and set it to port 5000 [Setup postgress](http://certek.com/kb4/install-server-postgresql-and-pgadmin-on-windows/)
* Install sequelize-cli, Run $ npm install -g sequelize-cli (note: sudo install on ubuntu or MAC)
* In terminal run $ sequelize db:migrate
* Create a .env file in your root directory and follow the pattern in the [.env.sample](https://github.com/Kenec/PostIt/blob/master/sample%20env%20file) file to create environmental variables
* Run $ npm start to get the app started on your local machine
## TESTING
#### Client side:
To run tests for the client side:
* Naviagate to the project location in your terminal
* Run `jest -u`
#### Server side
To run tests for the server side
* Navigate to the project location in your terminal
* Run `npm run test`
### Contributing
1. Fork this [repository](https://github.com/Kenec/PostIt.git)
2. Clone to your local environment: `https://github.com/Kenec/PostIt.git`
3. Create your feature branch: `git checkout -b my-new-feature`
4. Commit your changes: `git commit -am 'Add some feature'`
5. Write test for the new features
6. Push to the branch: `git push origin my-new-feature`
7. Submit a pull request against the `staging` branch
## Limitations
* Different users cannot create a group with the same name
* Users cannot delete the groups they created
* A user cannot join a group unless added to by another user
* When a user is added to a group, he/she cannot remove him/her self from the group unless by the group Admin
* Message cannot be edited or deleted
## FAQ
* Is this project an open source?
* Yes it is
* Can I use this app for commercial purpose
* This project is license under the MIT licence, hence it can use it for commercial purpose
* How do I test the online version of the project
* Create account on the [online version](https://postit-lite.herokuapp.com/) of the app so that you can have access to the app
* When I am logged in to the app, can I create my own group
* Yes you can
* How do I add people to the group
* Select on any group from the dashboard, then enter the username of a user you want to add to the group on the search box by the right. Then click `Add`
* Can I remove a user from the group I created
* Yes
* Can I remove a user from the group I did not create
* No. Only the group admin can remove a user
* Can I change my password
* Yes you can.
- Enter your email address in the `/forgotPassword` page,
- An email containing the reset password URL will be sent to your email address
- Click on the `RESET PASSWORD` button to reset password
- Enter your new password and confirm password
- Click change password button and your password will reset
## ISSUES
To report an issue or give feedback, Click link
[Issues and Feedback](https://github.com/Kenec/PostIt/issues)
## Authors
* Nnamani Kenechukwu Charles
## Licence
[MIT License](https://github.com/Kenec/PostIt/blob/master/LICENSE)
## Acknowledgments
* Andela Talent Accelerator Team