Over the past weeks, the team developed the following functions:
MongoDB is introduced to the project through Meteor. Now the user and item data stored in MongoDB can be fetched and deleted from the front end through the Meteor method calls.
The post-ads components are reimplemented:
The post-ad function is now divided into steps such as choose category, show subfield, and upload picture.
A third-party API is used to visualize user location on map. Furthermore, through autosuggestions on location names, the user do not have to input their full-address, but they only need to choose from the suggested locations after typing in a brief location (i.e., after typing "UBC", they can choose from the suggestions the exact locations in UBC). After they confirm, the precise location gets "pinned" on map accordingly.
The user can now review their submitted items before the information gets confirmed and added to MongoDB.
The JSON file now generates a key as user_id when users upload a new items, so that an item can be identified with individual sellers (this builds the foundation for implementing search functions later on).
A full log-in system is now introduced to the project through Meteor library:
A sign-up page is created (with first name, last name, email address as log-in account, and password).
A log-in system is implemented, which allows users to log into Way2Recyle through the .com address they signed up with. The system then generates alerts when there are errors in user-input passwords.
A forget-my-password service is implemented, which sends a link to the user's registered email when they forget their passwords. With this function, the users can recover account access through email that they registered with.
The user can also log into Way2Recycle through their social media accounts (i.e. Google)
For the next stage, we are going to reimplement the following functionality:
Develop the viewOneItem component, which allows users to update their input item information as well as check the seller location on map.
Implement validation for the specific types such as the price.
(1) what you've worked on in the previous two weeks?
We wrote multiple backend Meteor methods to render JSON to the front end.
Debug some front end display bugs after connecting the backend.
We use conditional display components to replace React Router.
(2) what you'll be working on in the next two weeks?
Items posted by the specific users could be modified by the owner only.
Edit page of items could be implemented.
Display image from Base64
(3) where you might have gotten stuck during the last two weeks.
The meteor call in the front end should be used as an async function to call the methods displayed in the backend.
The js function should be bound with its context (bind this). Otherwise, in the callback function, "this" keyword will return an "undefined" object, and it will throw an error about "missing the methods" because of the undefined object.
In Meteor, we didn't figure out how to allow redux to get a collection from the Meteor by subscribe/distribution system. But we utilized the Meteor method to return the JSON file.
During the past two weeks, we created Meteor back-end utilizing MongoDB, created sign up/login, forget password system, and posting ad components.
In next 2 weeks, we plan to develop more features as described in our proposal and to integrate our work together, such as allowing logged in users to manage the postings.
During last two weeks, we had issues with setting up Meteor's backend to work with the front end. Setting up login/password was hard because there were a lot of documents to go through.
During the past two weeks, for the backend, we introduced meteor backend which also had MongoDB embedded, creating interfaces for the front end to interact with. For the front end, we improve the functionality of components as well as using Login module.
In next 2 weeks, we plan to create more useful components that interact with the backend, and further improve the overall styling.
During last two weeks, I had issues with third-party API usage, as well as the correctly fetch data from meteor. Backend seems progress faster than the front end, we need to do more React Work.
Over the past weeks, the team developed the following functions:
MongoDB is introduced to the project through Meteor. Now the user and item data stored in MongoDB can be fetched and deleted from the front end through the Meteor method calls.
The post-ads components are reimplemented:
A full log-in system is now introduced to the project through Meteor library:
For the next stage, we are going to reimplement the following functionality: