Saplink is an app for plant lovers to trade cuttings, seeds, and other garden materials.
In-progress. Check back June 2022.
Saplink is a user-friendly React app designed to connect plant lovers with the common goal of growing one's plant collection through the trading of seeds, cuttings, and other gardening material. Saplink reminds users of the abundance of nature. There is enough to go around, and through community, we can grow together. Users can register, create ads, chat in real-time with other users, and make offers on ads.
Form Validation with Authentication and Conditional Routing
Ad and live-chat feature -- data persistence is facilitated by Google Firestore
I used ReactJS
, sass
, React-Redux
, React-Router
, JQuery
, Google Firestore
This project was bootstrapped with Create React App.
Clone down this repository. You will need node
and npm
installed globally on your machine.
Installation:
npm install
To Run Test Suite:
npm test
To Start Server:
npm start
To Visit App:
localhost:3000
Saplink is still in progress. Version 2
will integrate an updated chat UI and the trade feature will be completed. I will also add the ability to delete ads once items are no longer available. Additionally, I will add an API that will allow users to search for different plants and display care instructions.
This was my capstone project for Ada Developers Academy. I set out to build a simple, intuitive SPA for plant lovers to trade and grow their plant collection. Users can make offers and chat in real-time with others. I spent several weeks formulating the project by creating wireframes, researching, making and updating a kanban board, deciding MVPs, attending daily standups with folks using a similar tech stack, coding, and refining the scope of the project.
Many MVPs took longer than anticipated, while others were surprisingly intuitive to implement. The hardest part was paring down the project since I had so many features I wanted to add. The chat functionality was challenging to implement. I ended up collaborating with a friend to get it working properly.
Throughout this project I learned that organization is key. I found that organzing all of the subtasks using a kanban board was extremely helpful. Although I did set timelines for various MVPs, it was important to be flexible and adapt when more research was needed, but ultimately I was able to get the project to have the core functionality I set out to accomplish within the allocated time. I wanted to use React because my understanding of using hooks and props was not solid before this project and this allowed me to spend extra time on these topics and gain a deeper understanding. While using Classes in React is considered somewhat outdated by some folks, I chose to use them in a few instances because my current position at Salesforce uses this syntax.
List of contributors:
- Mustafa Shaikh helped with the real-time chat module. Github: @TheMustafaShaikh
MIT license