Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tolumide-ng/epic_mail
The EPIC_Mail is a web app that empowers it's users to exchange messages/information over the internet
https://github.com/tolumide-ng/epic_mail
Last synced: about 1 month ago
JSON representation
The EPIC_Mail is a web app that empowers it's users to exchange messages/information over the internet
- Host: GitHub
- URL: https://github.com/tolumide-ng/epic_mail
- Owner: tolumide-ng
- Created: 2019-02-23T14:35:35.000Z (almost 6 years ago)
- Default Branch: develop
- Last Pushed: 2021-09-01T20:08:27.000Z (over 3 years ago)
- Last Synced: 2023-03-06T08:17:22.677Z (almost 2 years ago)
- Language: JavaScript
- Homepage:
- Size: 19.3 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.com/tolumide-ng/EPIC_Mail.svg?branch=develop)](https://travis-ci.com/tolumide-ng/EPIC_Mail) [![Coverage Status](https://coveralls.io/repos/github/tolumide-ng/EPIC_Mail/badge.svg?branch=develop)](https://coveralls.io/github/tolumide-ng/EPIC_Mail?branch=develop)
***
# EPIC_Mail
EPIC_Mail is a web application that empowers it's users to exchange messages/information over the internet***
## Epic_Mail Features
- Users can create an account, and become Registered users
- Users can sign in
- Users can post an email
- Users can specifically save a message as draft
- Users can reset there password
- Users can get all received emails
- Users can specifically request for all draft messages
- Users can get all unread emails
- Users can get all sent emails
- Users can edit a draft message
- Users can retract a sent message
- Users can get specific email with the email's id
- Users can delete a specific email
- Users can create a group
- Users can view a specific group
- User who created the group can add new members to a group they created
- User who created the group can delete a member in the group
- Users can search for all groups present on epicmail
- Users in the group can send a broadcast message to all members of the group
- User who created the group can delete such group
- User who created a group can delete such group***
## EPIC_Mail User interface
User interface for EPIC_Mail is hosted with [GitHub pages](https://tolumide-ng.github.io/EPIC_Mail/UI/index.html)***
## Testing tools
EPIC_Mail is tested with [Mocha](https://mochajs.org/) and [Chai-http](https://www.chaijs.com/plugins/chai-http/)***
## Getting Started
### Prerequisites
- You must have node.js and npm installed on your system.
- Installing [Node.js](https://nodejs.org/en/) would install both***
### Installing
- Clone the repository ````https://github.com/tolumide-ng/EPIC_Mail.git```` to your local system
- Cd into the repository on your local system
- Create a **.env** file and name a declare a variable with the name **SECRET_KEY**
- Install dependencies
> Run the command below
````
$ npm install
````
***#### Setup
> To start the server, run the command below
````
$ npm run dev-start
````
***#### Running the tests
This tests most of the endpoints of EPIC_Mail> To test the code, run the command below
````
$ npm run test
````
***### API Information
EPIC_Mail version 1 is hosted on [heroku](https://epic--mail.herokuapp.com/)EPIC_Mail version 2 is hosted on [heroku](https://epicmail-ng.herokuapp.com/)
API for version 1 is documented on **[swagger](https://inspector.swagger.io/)** can can be viewed at [EPIC_Mail](https://app.swaggerhub.com/apis/tolumide-ng/EPIC_Mail/1)
API for version 2 is documented on **[swagger](https://inspector.swagger.io/)** can can be viewed at [EPIC_Mail](https://app.swaggerhub.com/apis/tolumide-ng/EpicMail_ng/1)
| Method |Description | Endpoint |
| -------- |-------------------------------------| ----------------------------------------|
| POST | User signup | `/api/v2/auth/signup` |
| POST | User login | `/api/v2/auth/login` |
| POST | User can reset password | `/api/v2/auth/reset` |
| POST | Compose Mail | `/api/v2/messages` |
| POST | Specifically save message as draft | `/api/v2/messages/draft` |
| GET | Get all sent messages | `/api/v2/messages/sent` |
| DELETE | Retract a sent message | `/api/v2/messages/retract/:id` |
| GET | Get all draft messages | `/api/v2/messages/draft` |
| GET | Get all unread messages | `/api/v2/messages/unread` |
| GET | Get all received messages | `/api/v2/messages/received` |
| GET | Get a specific message | `/api/v2/messages/:msd-id` |
| PUT | Edit a draft message | `/api/v2/messages/draft/:id` |
| DELETE | Delete a specific message | `/api/v2/messages/:msd-id` |
| POST | Create a group | `/api/v2/groups/` |
| GET | Get all groups on epicMail | `/api/v2/groups/` |
| GET | Get a specific group | `/api/v2/groups/:id` |
| PATCH | Edit a group | `/api/v2/groups/:id/name` |
| DELETE | Delete a created group | `/api/v2/groups/:id` |
| POST | Send Broadcast message to group | `/api/v2/groups/:groupId/messages` |
| POST | Add a user to the group | `/api/v2/groups/:id/users` |
| DELETE | Delete a group member from a group | `/api/v2/groups/:groupId/users/:userId` |***
### Tools and Technologies used
- [Node.js](https://nodejs.org/en/) - JavaScript runtime built on Chrome's V8 JavaScript engine
- [Express.js](https://expressjs.com/) - Minimalist, unopinionated web application framework for Node.js
- [ESLint](https://eslint.org/) - Pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript.
- [Babel](https://babeljs.io/) - Free and open-source JavaScript compiler and configurable transpiler used in web development.
- [JWT](https://jwt.io/) - A compact URL-safe means of representing claims to be transferred between two parties
- [bcrypt.js](https://www.npmjs.com/package/bcryptjs) - A password hashing function written in Javascript
***## Author
- Shopein Tolumide---