eXchange is a website where you can find textbooks, notes, and tutors.
Note: This is the frontend repo for eXchange, to see the backend repo, please visit https://github.com/CSMT-Westwood/exchange-backend.
For a full motivational and technical overview, see this
Study materials are often cost-prohibitive or hard-to-find. Students may resort to the Facebook marketplace, Craigslist, and other listing platforms, but these sites are inundated with non-academic items. Moreover, they lack a prominent record of buyers/sellers/traders' reputation in past transactions.
eXchange was made with students in mind. College students sign up and are free to post offers or requests of textbooks, notes, or skills (e.g., guitar lessons). People's contact details are exchanged, and it's up to them to set a price, bargain, or timeshare resources. Transactions are recorded and tallied.
- React
- Bootstrap CSS for styling
- Register, Directory, UserInfo, Feeds, Settings
- Navbar, Container, Dashboard, Modal, etc
- SearchBar, Card, Form, Dropdown, etc
- Express.JS
- Cloudinary, MongoDB/Mongoose
- JWT, bcriptJS for user authentication and encryption
- /post: actions related to a post on the website
- /user: actions related to a user
- /avatar: actions related to user photos
- /feed: actions related to the aggregation of all posts related to the user
Users can sign up, login, create posts, search for posts, customize their profile, view notifications, view the status of posts on a dashboard, and see posts of interested categories on a feed.
- Download the repo
$ git clone https://github.com/CSMT-Westwood/eXchange.git
- Get into the correct working directory
$ cd eXchange/exchange
- Install necessary dependencies
$ npm install
- Launch the web app
$ npm start
The source code that's deployed is currently in the deployment-test branch. Currently the API URLs are still hardcoded in the source code, and thus it's not merged into master.
To make modifications:
- Pull deployment-test branch
npm pull origin deployment-test
- Make modifications to the code
- Install dependencies
npm install
- Run this to deploy
npm run deploy