|
| 1 | +# Teleport - A simplified alternative to POSTMAN |
| 2 | + |
| 3 | +## A simplified alternative to POSTMAN with features like response differ and hyper runs |
| 4 | + |
| 5 | +> In response to numerous feedbacks, I have already started working on Phase 2. I will bring the key checker switch and hyper run which will be "live" soon. |
| 6 | +> |
| 7 | +> Thanks for your continuous support. Stay tuned! :muscle: |
| 8 | +
|
| 9 | + |
| 10 | +This is not only a simplified POSTMAN close built with **react**, but also an example of a more customizable, personalized alternative to POSTMAN. |
| 11 | + |
| 12 | +## Working application |
| 13 | + |
| 14 | +Check out the **live demo** -> https://lintrest.herokuapp.com |
| 15 | + |
| 16 | + |
| 17 | +If you like my work, feel free to: |
| 18 | + |
| 19 | +- [][tweet] about alternative to POSTMAN |
| 20 | +- :star: this repository. And I will be happy together :) |
| 21 | + |
| 22 | +Thanks a bunch for stopping by and supporting me! |
| 23 | + |
| 24 | +[tweet]: https://twitter.com/intent/tweet?url=https://github.com/Rajdeepc/version-REST&text=Awesome%20POSTMAN%20clone%20app%20built%20with%20React%20and%20NodeJS&hashtags=react,nodejs,indexdb |
| 25 | + |
| 26 | +## Who is it for 🤷♀️ |
| 27 | + |
| 28 | +I have been working with React for about four years. I built cool stuff at [Github](https://github.com/Rajdeepc) and so I wanted to try out to build a cool alternative to POSTMAN with bunch of new features for **developers** and **testers**. |
| 29 | + |
| 30 | +This is a showcase application I've built in my spare time to experiment the power of React that I wanted to try before: `React`, `NodeJS`, `IndexDB`. |
| 31 | + |
| 32 | +There are not many alternative to REST client applications like POSTMAN on the web and I think that this codebase contains enough complexity to offer valuable insights to **React developers of all skill levels** while still being _relatively_ easy to understand. |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +This piece of application is a long term release of new features which can be seen in the Release notes which I am planning to push every month. The product will be live soon for production use. |
| 37 | + |
| 38 | +[Rajdeep]: http://reactive-rajdeep.netlify.com/ |
| 39 | + |
| 40 | +## Tech stack |
| 41 | + |
| 42 | + |
| 43 | +- React CRA |
| 44 | +- Redux state management |
| 45 | +- UI modules: |
| 46 | + - SASS |
| 47 | + - React Router |
| 48 | +- Heroku |
| 49 | +- NodeJS |
| 50 | + - HapiJS |
| 51 | + - shortid |
| 52 | + - xoauth |
| 53 | +- Mongoose |
| 54 | +- MongoDB Atlas |
| 55 | + - mlab |
| 56 | +- IndexDB - In mermory database |
| 57 | +- Google Single Sign On |
| 58 | + |
| 59 | + |
| 60 | +## Features and Roadmap |
| 61 | + |
| 62 | +I set the tentative deadline for motivating myself to finish the work on time. Otherwise, It will take forever to complete :) |
| 63 | + |
| 64 | +### Phase 1 - MERN application with IndexDB and SSO support |
| 65 | + |
| 66 | +> June Release, 2020 |
| 67 | +
|
| 68 | +- [x] Compare Response Feature - Compare responses of the same API once response structure changes |
| 69 | +- [x]Add or remove API Endpoints - Add and remove API endpoints from EndPoints tab |
| 70 | +- [x]Search Endpoints - Search through your API Endpoints with Smart Search |
| 71 | +- [x]Sign In Feature - Sign In to save all your api |
| 72 | +- [x]Notification Swtich - Switch On/Off Notifications |
| 73 | +- [x]Generate Code - Generate Code from your API constructs |
| 74 | +- [x]More Personalized Settings - More Personalised Settings Feature |
| 75 | +- [x]IndexDB Support - Localized data now saved in IndexDB for more storage |
| 76 | + |
| 77 | +### Phase 2 |
| 78 | + |
| 79 | +> Sept Release, 2020 |
| 80 | +
|
| 81 | +- [ ] Refactor the mono repo to use Nx Workspace |
| 82 | +- [ ] GraphQL API and store data on the actual database |
| 83 | +- [ ] Authentication |
| 84 | +- [ ] Websocket realtime update |
| 85 | +- [ ] Interactive report |
| 86 | + |
| 87 | +## Time spending |
| 88 | + |
| 89 | +It is a side project that I only spent time outside of the office hours to work on. |
| 90 | + |
| 91 | +I have spent about 80 hours working on this project which is equivalent to watching the whole Stranger Things series twice. |
| 92 | + |
| 93 | + |
| 94 | +## What's currently missing? |
| 95 | + |
| 96 | +There are missing features from the live demo which should exist in a real product. All of them will be finished on Phase 2: |
| 97 | + |
| 98 | +### Import JSON collection |
| 99 | + |
| 100 | +I would like to build this feature for a robust JSON parser which can import and parse any type of JSON |
| 101 | + |
| 102 | +### Diff checker for testers and developers |
| 103 | + |
| 104 | +This feature will hold a switch which will enable diff checker for attribute for testers and the value for developers. This could make a good feature for testers to check for any changes in attribute of the current response |
| 105 | + |
| 106 | + |
| 107 | +### Accessibility ♿ |
| 108 | + |
| 109 | +Not all components have properly defined [aria attributes](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA), visual focus indicators, etc. |
| 110 | + |
| 111 | +## Setting up development environment 🛠 |
| 112 | + |
| 113 | +- `git clone https://github.com/Rajdeepc/teleport.git` |
| 114 | +- `cd teleport` |
| 115 | +- `npm run start` for the API |
| 116 | +- The API server should run on `http://localhost:3000` |
| 117 | +- `npm run start` for angular web application |
| 118 | +- The app should run on `http://localhost:4200/` |
| 119 | + |
| 120 | +### Unit/Integration tests 🧪 |
| 121 | + |
| 122 | +Unit Testing done with React Testing Library. |
| 123 | + |
| 124 | +## Compatibility |
| 125 | + |
| 126 | +It was being tested on IE 11, Chrome and Firefox. For Safari, there are some minor alignment issues. |
| 127 | + |
| 128 | +## Author: Rajdeep Chandra ✍️ |
| 129 | + |
| 130 | +- A seasoned Full Stack Engineer. Working with React and Vue NodeJS and Web Security. Like photography, gadgets, cooking, and reading books. |
| 131 | +- Personal blog: http://reactive-rajdeep.netlify.com/ |
| 132 | +- Say hello: rajrock38 [et] gmail [dot] com |
| 133 | + |
| 134 | +## Contributing |
| 135 | + |
| 136 | +If you have any ideas, just open an issue and tell me what you think. |
| 137 | + |
| 138 | +If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome. |
| 139 | + |
| 140 | +## Credits |
| 141 | + |
| 142 | +Inspired by [POSTMAN](https://github.com/postmanlabs) |
| 143 | + |
| 144 | +I reused part of the HTML and CSS code from these projects. |
| 145 | + |
| 146 | +## License |
| 147 | + |
| 148 | +Feel free to use my code on your project. It would be great if you put a reference to this repository. |
| 149 | + |
| 150 | +[MIT](https://opensource.org/licenses/MIT) |
0 commit comments