https://github.com/goodluckh/rolodex-on-prem
Ditch the spreadsheet! Start managing your professional network whenever, wherever you are.
https://github.com/goodluckh/rolodex-on-prem
Last synced: 12 months ago
JSON representation
Ditch the spreadsheet! Start managing your professional network whenever, wherever you are.
- Host: GitHub
- URL: https://github.com/goodluckh/rolodex-on-prem
- Owner: GoodluckH
- License: mit
- Created: 2021-01-22T01:16:53.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-01-22T04:29:35.000Z (over 5 years ago)
- Last Synced: 2025-04-04T03:28:50.333Z (over 1 year ago)
- Language: JavaScript
- Size: 249 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
![npm][npm]
![Lines of code][Lines of code]
[](https://forthebadge.com)
[](https://forthebadge.com)
[](https://forthebadge.com)
Rolodex On-Prem Version
Ditch the spreadsheet! Start managing your professional network whenever and wherever you are.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
-
About The Project
-
Getting Started
- Usage
- Deployment
- Roadmap
- Contributing
- License
- Contact
- Acknowledgements
## About The Project
Rolodex aims to eliminate frictions for professional network management. This repository serves an on-premise version since the project uses MongoDB to store contact information. For now, users need to create their own MongoDB Atlas database to store their own information.
The Rolodex demo communicates with my own Atlas database (open access for all public IPs). For that reason, the demo is more of a crowd-sourced version of Rolodex. Please be civil when trying out the demo because everyone can see what's on the rolodex.
### User Interface
Rolodex is a simple, one-page web app that mainly consists of three interfaces.
**Loading Page**
[
](https://i.ibb.co/2S2D5J4/ezgif-com-gif-maker.gif)
**Add Profile Page**
[
](https://i.imgur.com/RgFObG3.png)
**Rolodex Page**
[
](https://i.imgur.com/WoYi9Jp.png)
### Built With
* [React](https://reactjs.org/)
* [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)
* [Express](https://expressjs.com/en/guide/using-middleware.html)
* [Node.js](https://nodejs.org/en/)
## Getting Started
To get a local copy up and running follow these simple steps.
### Installation
1. Clone the repo
```sh
git clone https://github.com/GoodluckH/rolodex-on-prem.git
```
2. Install NPM packages
```sh
npm install
```
## Usage
Rolodex sends and requests data from MongoDB Atlas. You will need to configure an Atlas cluster to run this project.
### Get Connection String from MongoDB Atlas
Create a [MongoDB Atlas](https://www.mongodb.com/try) account, and create a new cluster (don't forget to whitelist your IP address and to add a user). Once the cluster is configured, click 'Connect' within the sandbox to start the process of generating a [connection string](https://docs.atlas.mongodb.com/reference/faq/connection-changes#std-label-connstring-standard).
[
](https://i.imgur.com/gCZcJVQ.png)
For this project, choose "Connect your application".
[
](https://i.imgur.com/caQfUEf.png)
You will be able to copy the connection string.
### Configure ENV
Head to `./server/routes`, where you will need to paste the connection string in the `.env.example` file, where the connection string is stored as ATLAS_URI. _Inside of the connection string, make sure that you have replaced `` with your user password. And please don't include quotation marks that were originally in the `.env.example` file_.
Rename `.env.example` to `.env`.
### Run!
Within the `server` directory, open up the terminal and run the following command:
```sh
nodemon serve
```
This will allow you to check if the connection with MongoDB has established.
Switch to the `client` directory, run `npm start` to launch the app in your browser.
## Deployment
### Backend
The backend side of the project can be deployed on AWS, Google Cloud, Heroku, etc. Before the deployment, make sure to head to the `./server/routes` directory to add the following codes to the `index.js` file:
```js
app.get("/", (req, res) => {
res.send("Your message");
});
```
Once the backend is deployed on some server, go to `./client/src/components`, in each of the component file, find `localhost` links, and replace them with the URL that your hosting service provided.
### Frontend
It is quite simple for frontend deployment. You can use services like Netlify to quickly deploy the `client`. If you use Netlify, be sure you put `CI= npm run build` for build command. This is because Netlify will treat warning messages as errors, which will result in build failures.
Alternatively, run `npm run build` to generate the `build` directory where you can manually deploy the content.
## Roadmap
Adding user authentification to allow each user access his or her own database is the first and the most important feature Rolodex needs.
For future features, here are some ideas:
* Automatically remind user to follow with a particular contact after `t` periods of time, where `t` can be configured by the user
* Integration with calendars to automatically import contacts
* Search function to quickly find contacts by name, company, and keywords in the comment sessions
* Sort function; a new column that displays "Date Added"
Also see the [open issues](https://github.com/GoodluckH/rolodex-on-prem/issues) for a list of proposed features (and known issues).
## Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/NewFeature`)
3. Commit your Changes (`git commit -m 'Add some NewFeature'`)
4. Push to the Branch (`git push origin feature/NewFeature`)
5. Open a Pull Request
## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Xipu Li - [@theXipuLi](https://twitter.com/theXipuLi)
Project Link: [https://github.com/GoodluckH/rolodex-on-prem](https://github.com/GoodluckH/rolodex-on-prem)
## Acknowledgements
* [Choose an open source license](https://choosealicense.com/)
* [Material - UI](https://material-ui.com/)
* [react-spinners](https://www.davidhu.io/react-spinners/)
* [Screely](https://www.screely.com/)
* [Othneil Drew](https://github.com/othneildrew)
* [Shuming Xu](https://github.com/gundamMC)
* [JetBrains Mono](https://www.jetbrains.com/lp/mono/)
[stars-shield]: https://img.shields.io/github/stars/GoodluckH/rolodex-on-prem.svg?style=for-the-badge
[stars-url]: https://github.com/GoodluckH/rolodex-on-prem/stargazers
[issues-shield]: https://img.shields.io/github/issues/GoodluckH/rolodex-on-prem.svg?style=for-the-badge
[issues-url]: https://github.com/GoodluckH/rolodex-on-prem/issues
[license-shield]: https://img.shields.io/github/license/GoodluckH/rolodex-on-prem.svg?style=for-the-badge
[license-url]: https://github.com/GoodluckH/rolodex-on-prem/main/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/xipuli
[product-screenshot]: images/screenshot.png
[npm]: https://img.shields.io/npm/v/npm.svg?style=for-the-badge
[Lines of code]: https://img.shields.io/tokei/lines/github/GoodluckH/rolodex-on-prem.svg?style=for-the-badge&color=red