PostIt is a simple application that allows friends and colleagues create groups for notifications. It allows a person post notifications to everyone in his group by sending a message once.
It has the following features;
- Creating of an account
- Signing in a registerd user
- Sign-up and Sign-in through google authentication
- Reset password
- Create Groups and be added to groups by other users
- Add users to the group
- View group members
- Post messages in member groups in real-time
- Upload profile pictures
- Archive Messages and view Archived messages
- Recieve in-app, email and sms notification when a message is posted in the group you belong to, based on the message's priority level. The different priority levels are
Normal,Urgent,Critical
This app's functionality depends on multiple NPM packages including;
- Node - A JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express - This framework enables robust routing and building web Applications and API's with focus on high performance
- Postgres - A promise-based ORM for Node.js and io.js. Used in this project as ORM for postgres
- Navigate to a directory of choice on
terminal. - Clone this repository on that directory.
- Using SSH;
> git clone [email protected]:ayodelevm/PostIt.git
- Using HTTPS;
> git clone https://github.com/ayodelevm/PostIt.git
-
Navigate to the repo's folder on your computer
-
cd PostIt/ -
Install the app's backend dependencies using
npm install- In order to begin using, you need to have nodeJs and npm installed on your system.
- For database you need to install PostGres locally or setup with an online client eg. ElephantSql
- Create two (2) databases one for development and the other for testing
- Change database config variables in the config.json file, based on your own db set-up
- In other to interact effectively with endpoints, install and use Postman
-
Run the app
npm start- Running the command above will run the app at localhost://3002.
For detailed information on how to use this api, view the documentation
CLick here to read through our FAQ.
This app currently have the following limitations:
- You cannot delete a group, however there's an endpoint in the backend that allows the creator of a group delete the group
- You cannot edit a group's details, however there's an endpoint in the backend that allows the creator of a group update the group
- You cannot remove users from a group after they have been added
- You cannot edit a users details. Only a users profile image can be changed
- Other members of the group are not notified when a new user is added to the group
- You cannot edit or delete a message once it has been sent
- The tests have been written using Mocha , Chai as it's assertion library and Supertest class.
- To run the tests, navigate to the project's folder and open.
- Issue the following command on terminal.
npm run test- If the tests are successful, they will complete without failures or errors.
To contribute to this project:
- Fork the project, clone your fork, and configure the remotes
- If you cloned a while ago, get the latest changes from upstream
- Create a new topic branch (off the main project development branch) to contain your feature, change, or fix
- Commit your changes in logical chunks
- Locally merge (or rebase) the upstream development branch into your topic branch
- Push your topic branch up to your fork
- Open a Pull Request to the client-develop branch with a clear title and description
IMPORTANT: This guideline for contributing to the project was adapted from necolas issue-guidelines. Navigate to necolas/issue-guidelines for full details and step by step guidelines on how to contribute to this project.
This project is licensed under the MIT license. Click here to read the license in full