EPIC mail is a web app that facilitates people to exchange messages over the internet. The app has authentication and functionalites where each user has to register and then login. A user can be able to make CRUD operations for messaging(Inbox, read messages, retract sent messages, send a message to individuals, save an email as draft and send it later or delete it), Create a group and add members to that group and send a message to a group.
Below, you can see all EPIC mail features listed.
- Users can sign up.
- Users can login.
- Users can create groups.
- Users can send a message to individuals.
- Users can view their inbox and read messages.
- Users can retract sent messages.
- Users can save an email as draft and send it later or delete it
- You need to have
git,NodeJSandnmpinstalled on your local environment. - Clone the application with
git clonecommand. npm installto install all the dependencies in local environmentnpm updateto update the dependencies if new version available.
NodeJsRuntime environment that helps to run JavaScript not only in the browser even on the server.ExpressNodeJS framework used for making the back-end.JoiandMorganAPI request body error validation and HTTP Request logger respectively.
Starting application run the following npm scripts
npm startfor starting the server.
When you need to test the application and view test coverate run:
npm testfor running the tests, and getting coverage summary.
-
POST
/api/v2/auth/signupCreate a user account. -
POST
/api/v2/auth/loginLogin a user. -
POST
/api/v2/messagesCreate or send an email. -
GET
/api/v2/messagesFetch all received emails. -
GET
/api/v2/messages/unreadFetch all unread received emails. -
GET
/api/v2/messages/readFetch all read received emails. -
GET
/api/v2/messages/sentFetch all sent emails. -
GET
/api/v2/messages/draftFetch all draft emails. -
GET
/api/v2/messages/<message-id>Fetch a specific email record. -
DELETE
/api/v2/messages/<message-id>Delete a specific email record. -
POST
/api/v2/groupsCreate a group. -
GET
/api/v2/groupsFetch all groups records. -
PATCH
/api/v2/groups/<group-id>Edit the name of a specific group. -
DELETE
/api/v2/groups/<group-id>/usersDelete a specific group. -
POST
/api/v2/groupsAdd a user to a group. -
DELETE
/api/v2/groups/<group-id>/users/<user-id>Delete a user from a specific group. -
POST
/api/v2/groups/<group-id>/messagesCreate or send an email to a group
Access link: Visit the link. You can test the above API using this Heroku URL https://hervera-epicmail.herokuapp.com/ with the above mentioned Endpoints.
GitHub pages (gh-pages) of this project is accessed using this link EPICMail UI.