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
The Documentation for the PostIt Restful API: PostIt Restful API Documentation
The frontend was implemented using:
- React A JavaScript library for building user interfaces
- Redux Redux is a predictable state container for JavaScript apps.
- Bootstrap Build responsive, mobile-first projects on the web.
The Backend was implemented using:
- Node Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine
- Express Express is a minimal and flexible Node.js web application framework
- Sequelize Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, SQLite and MSSQL
- Postgres A powerful, open source object-relational database system.
- install Node js and Postgress
- 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
- 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 file to create environmental variables
- Run $ npm start to get the app started on your local machine
To run tests for the client side:
- Naviagate to the project location in your terminal
- Run
jest -u
To run tests for the server side
- Navigate to the project location in your terminal
- Run
npm run test
- Fork this repository
- Clone to your local environment:
https://github.com/Kenec/PostIt.git
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Write test for the new features
- Push to the branch:
git push origin my-new-feature
- Submit a pull request against the
staging
branch
- 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
- 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 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
- 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
- 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
- Enter your email address in the
- Yes you can.
To report an issue or give feedback, Click link Issues and Feedback
- Nnamani Kenechukwu Charles
- Andela Talent Accelerator Team