Skip to content

Connecting users with local food carts and allowing them to skip the line.

License

Notifications You must be signed in to change notification settings

jon-wehner/OpenCarts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


OpenCarts

A platform for connecting users with local businesses.

View Demo · Report Bug/Request Features

Table of Contents

  1. About The Project
  2. Frontend Technologies
  3. Backend Technologies
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

OpenCarts is a platform for users to connect with local food carts and skip the line. Users can search the platform for local food carts by name, location, or cuisine and make reservations. Users can view past and future reservations, and also leave reviews. The frontend of the application was created in the ReactJS library, and the Express NodeJS framework was utilized for the backend. The application is connected to a postgres databse and deployed to Heroku.

Technologies

  • React with TypeScript
  • Redux
  • NodeJS
  • Express
  • Sequelize
  • postgreSQL
  • CircleCI

Frontend Technologies

React with TypeScript

The OpenCarts frontend was created with the aid of the ReactJS library. The application makes heavy use of React's component tree and virtualDOM features to update components without page refreshes. I created components that could be used in several different areas of the application to streamline development and provide a consistent user experience. TypeScript was added to the project to add variable typing and simplify future development of the application. Variable typing reduces errors, and allows developers to easily see what types are being passed into compoments without needing to trace the props through several layers of parent components.

Redux

OpenCarts relies on the redux library for app-wide state management. The modern Redux tooling with Redux Toolkit was adding to simplify the implementation of the Redux library, and reduce the amount of boilerplate code. Redux-thunk is utilized to handle asynclogic utilized in calls to the API.

Backend Technologies

The backend of the application consists of a RESTful API created with the Express framework. The Sequelize ORM was utilized to interface with a PostgreSQL database.

Express

Express is a minimalist web framework for Node.js. A large amount of middleware packages exist that developers can use to streamline API development. It is also possible to create custom middleware, such as a middleware function to handle async calls. Express only has a basic set of features out of the box, and developers can include middleware to improve the functionality of their application. This results in a backend that has only the features required, and nothing extra.

PostgreSQL

OpenCarts uses the PostgreSQL database to store application data. Postgres is an open-source and highly regarded relational database system. The system is very well document and has an active development community. One reason that I chose to use a relational database over a NoSQL databse is that I felt it was right for the scale of the application, and the enforced schema validation helps reduce data anamolies.

Roadmap

See the open issues for a list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Jon Wehner - jonjwehner@gmail.com

Project Link: https://github.com/jon-wehner/opencarts

About

Connecting users with local food carts and allowing them to skip the line.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages