Skip to content

Latest commit

 

History

History
193 lines (138 loc) · 6.65 KB

README.md

File metadata and controls

193 lines (138 loc) · 6.65 KB

Contributors Forks Stargazers Issues License: GPL v3 LinkedIn


Logo

Showcase

A full-stack solution to a personal portfolio with a built-in content management system.

Table of Contents

About The Project

I've always wanted to build my own corner of the internet. A digital "place for my stuff". Showcase is my answer to that desire. It's an after-hours project I've been building for months.

It has an expansive feature set that a variety of users can leverage.

  • Integrated Content-Management System: Add, Edit, Delete, and Feature content.
  • Styling and Themes: Content adjusts to fit user's device. Change the entire site's theme on-the-fly.
  • SEO: Server-side rendering, user-defined slugs, auto-generated meta tags for sharing content
  • Security: Opt-In 2FA, Secure Cookie Auth, Configurable Sanitization
  • Content: Host your portfolio, a blog, photo, and media section. Rename or hide the portfolio section.
  • Contact: Wire up some SMTP credentials to receive messages from prospective users.
  • Versatilitiy: Edit most of the website at any time. Environment configuration supports a variety of deployments.
  • And More: Pagination, Categories, Tags, Search, Addressable Highlights, etc... all implemented!

Product Name Screen Shot

Built With

Getting Started

If you're new to these technologies, I recommened the following:

  • Mosh's Series on React and Node.js
  • Official Next.js Docs

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

Prerequisites

  • Node.js
  • MongoDb

Installation

  1. Clone or Fork the project
git clone https://github.com/nickprovs/showcase.git
  1. Install NPM packages
npm install
  1. Start the client - usually from a VS Code terminal
Create development.json config file using example.development.json from /config as an example
cd client
npm run dev
  1. Start the server - usually from a VS Code terminal
Update default.json config file in /config or create config files for other dev environments
cd server
npm start

Usage

This website can be used to show your personal and/or professional content. It can always be forked, revised, or expanded for your personal needs.

The high-level architectural picture here is that the Next.js app (Client) simply hosts the pages and it gets the data from the Express API (Server).

Deployment

Both the client and server are environment configurable, so you should be able to deploy anywhere.

A good choice would be to deploy to Google Cloud's AppEngine, and MongoDB Cloud.

  • Create a MongoDB Database in the cloud and get it's connection string.
  • Create an AppEngine project.
  • Wire up your domain name to the AppEngine project.
  • Create your app.yaml's in the client and server folders based on the example files.
  • Run gcloud app deploy from both the client and server directory.
  • These two nodejs services will be deployed to the same AppEngine project.

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/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU GPLv3 License. See License for more information.

Acknowledgements

Client

Server