PostIt is a simple application that allows friends and colleagues create groups for notifications. Users can post broadcast messages to groups and other group members will get notification based on the message priority.
PostIt allows users to do the following.
- Register and log into their accounts.
- Create broadcast groups and add other users to the groups
- Post messages to a group with message priority
- Group members get in-app notifications for
normalmessages. - Group members get in-app and email notifications for
urgentmessages. - Group members get in-app, email and SMS notifications for
criticalmessages.
- Group members get in-app notifications for
- Retrieve all the messages posted to groups they belong to based on their
readstatus when they are signed in.
The template directory contains the UI template for the front-end in HTML/CSS
The server directory houses the back-end implementation in NodeJS-Express-Postgres
The client directory houses the front-end implementation in ReactJS (Redux)
- Front-end: React/Redux, SASS, Webpack
- Back-end: Node/Express, Sequelize/Postgres
- Nexmo: For sending SMS notifications
- Clone the repository, navigate to the folder and run
npm installto install dependencies. - Setup Postgres
- Set up your database credentials in
server/config/config.js. See sample file - Run
$ sequelize db:migrateto run database migrations - Create a Nexmo account and get your API details for SMS notification
- Create a
.envfile in your root directory and follow the example pattern below to set up environment variables. See sample file - To start app, navigate to the root directory of the app and run
node run start:devin development ( This is start up the app withnodemonwatching for changes ) ornpm startin production.
You can find the Documentation for the PostIt Restful API here.
This app uses Mocha, Chai-Http for API tests, Jest, Enzyme for frontend tests and Nightwatch for end-to-end tests
- Run
npm i mocha -gto install Mocha globally andnpm i nyc -gto install nyc globally before runningnpm testto run the API tests - Run
npm i jest-cli -gto install Jest globally before runningnpm run test:clientto run the frontend tests - Run
npm i nightwatch -gto install Nightwatch globally ,npm run e2e-setup. Then runnpm run e2e-serverin one terminal window to start the selenium server before runningnpm run test:e2ein the app directory in another terminal window to run the end-to-end tests
- Setup a Node.js hosting account with any Node.js hosting platform of your choice.
- Set up an online PostgreSQL database with any PostgreSQL platform of your choice.
- Push the files to your hosting account and set up the enviroment variables in the .env file. See sample file.
Fork it!
- Create your feature branch:
git checkout -b awesome-feature - Commit your changes:
git commit -m 'Add my awesome feature' - Push your branch online:
git push origin awesome-feature - Submit a pull request to
developmentbranch 😄
FInd the frequently asked questions about PostIT here.
- Chuks Opia
- Andela Talent Accelerator Team
- This project is licensed under the terms of the MIT License.