/rolodex-on-prem

Ditch the spreadsheet! Start managing your professional network whenever, wherever you are.

Primary LanguageJavaScriptMIT LicenseMIT

Stargazers Issues MIT License LinkedIn npm Lines of code
forthebadge forthebadge forthebadge


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

  1. About The Project
  2. Getting Started
  3. Usage
  4. Deployment
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. 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

Add Profile Page

Rolodex Page

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Installation

  1. Clone the repo
    git clone https://github.com/GoodluckH/rolodex-on-prem.git
  2. Install NPM packages
    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 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.

For this project, choose "Connect your application".

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 <password> 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:

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:

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 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

Project Link: https://github.com/GoodluckH/rolodex-on-prem

Acknowledgements