YouPost is an Application where registered users send messages to one another via groups they joined. It involves In-App, Email and SMS messaging methods. You can view the live application at https://you-post.herokuapp.com. Check below for the application details:
- Sign up for the system
- Login with your credentials
- Create group
- Search and add other registered users to groups you joined
- Send messages to groups you joined
- Read messages sent by other users from your message board
- Receive Email notifications if urgent messages are sent to groups you joined
- Receive SMS and Email notifications if critical messages are sent to groups you joined
- Read all messages available in the groups you joined
- View list of all groups you joined
- View list of members in a particular group you joined
- Logout of the application any time you wish
- Reset password if forgotten
- Node js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express js handles backend routing.
- Sequelize Sequelize is a promise-based ORM for Node.js and io.js. It supports the dialects PostgreSQL, MySQL, MariaDB, SQLite and MSSQL and features solid transaction support, relations and many more.
- PostgreSQL A powerful, open source object-relational database system.
- Bootstrap makes styling responsive web pages faster and easier.
- NgRx JavaScript Library for implementing Redux pattern in Angular applications.
- Angular A JavaScript Framework for developing client side applications.
This installation guide is for development purpose. For production, check the next section which is Installation on production
- Install Node js and Postgres on your machine
- Clone the repository
git clone https://github.com/johadi/you-post.git - Change into the directory
cd /you-post - Install all required dependencies with
npm install - For easier accessibility, Install sequelize-cli globally for database migrations
npm install -g sequelize-cli - Create a
.envfile in your root directory and follow the pattern in the .env.sample file to create environmental variables - Migrate your database by running this command
npm run migrate - You can undo your migrations by running this command
npm run migrate:undo. - Open a terminal and run
npm run build:watchto build the application client side in watch mode. - Open another terminal and run
npm run start:devto boot the application. - Navigate to
localhost:3000on your browser to open the application (use your port if you definedPORTvariable in.envfile)
This installation guide assumes you are using heroku for your deployment. However, If you are using another platform, you can check the package.json and adjust the neccesary scripts to suit your platform.
- Check Heroku deployment guide to use either of the two ways to deploy the application to heroku. Link here Heroku Guide .You could use Heroku CLI or Heroku Dashbaord.
- In either ways you use, ensure you set up your Postgres database and add all the required enviromental variables using the pattern in the
env.samplefile in the project. - The scripts for Heroku to deploy the application has already been set up. All you will likely need is to set up the database, add environmental variables and then push the code to Heroku using Heroku CLI or Connect Heroku to your Github version of this project using the Heroku dashboard. If you follow this guide, the application should be live.
- Use separate DB's for testing and development as shown in the .env.sample file
- Run server-side test with
npm test:server - Run client-side test with
npm run test - Run e2e test with
npm run e2e
- User's logged in session expires when the browser is closed.
- Users cannot create account with same username or email if already used.
- Users cannot add themselves to other groups they don't belong. They can only be added by other registered users that are already member of the group.
- Some of the features outlined above are not fully implemented as the project is in active development.
- Keep visiting to see the progress of the application in the checked list
- Fork the repository
- Make your contributions
- Make sure your work is well tested
- Create Pull request.
MIT