A single page app (SPA) to offer a crowd-sourced collection of nearby garage/yard sales. All visitors may view the events nearby but must login using a social media account (Google, Facebook or Twitter) to post their own events. Events may have up to five (5) images included to show available items.
- ReactJS frontend
- Redux for application state management
- ExpressJS middleware
- NodeJS backend
- MongoDB database (web-scale! ;)
- PassportJS for authentication
- AWS S3 for image storage
- Geocoder library for finding user's location
- MaterializeCSS for styling eye candy
Deployed to production environment on a Digital Ocean droplet. SSL certificate loaded/provided by Let's Encrypt.
NodeJS 8.9.4+ must already be installed on your local system!
After cloning the repo to your local drive open your terminal/command prompt.
Switch to the main app directory and run npm install
.
The switch to the client
subdirectory and run npm install
again.
You should now be ready to start the development server by running npm run dev
.
If the React init did not open your default browser you can browse manually to http://localhost:3000
.
Adding aggregation of external garage sale sources to show alongside user created events. Scraping Craigslist and local newspaper web sites would be ideal but they have employed various methods of defeating most scrapers so this enhancement will require significant time and resources. NightmareJS should take care of this nicely (but not easily). Stay tuned!