Web Platform and REST API for BarterOut
BarterOut is a student led organization at the University of Rochester. We believe access to educational materials is a key component to a great college experience and we are using technology to improve access for everyone. Our web platform is a web application that helps students buy and sell used textbooks. Skedge is a class scheduling application that makes finding new courses a smooth, social, and stess free experience. All our of projects are open-source and we love to see new contributions and ideas!
- VS Code - Text Editor
- Bash - Shell
- ESLint - Linter
- Node - Javascript parser
- React - Frontend Javascript framework
- npm - Node package manager
- Babel - Javascript transpiling
- Mongoose - MongoDB wrapper
- MongoDB - Database
- Webpack - Frontend module bundler
- Jest - Test assertion library
- Supertest - Test library
At BarterOut, we use Slack, FB Messenger and email for all of our task management and communication. If you are interested in staying up to date with our work, email us and we will send you an invite to the Slack.
We have some basic standards for our codebase. We use a linter and any code that gets merged into the project should comply with the linter. We suggest that you setup ESLint with your editor so that you are automatically warned when you are writing code outside of the linter's rules. If you are modifying the API or making significant changes to the frontend, you should also write internal documentation with JSDoc. Since we already have a lot of technical debt, we would really appreciate it if you wrote tests for any new code you add! If you have any questions about meeting these standards you can contact [email protected] or message @duncan on Slack. Note that when contributing, you should do all of your work on a seperate branch and then submit a PR to merge your branch into dev
. Do NOT push directly to dev
.
*Note: We use environment variables for this project. If you want to run
the project succesfully on your local machine, you will need to create
a file in the root directory of this folder called .env
in which all
of your environment variables will be stored. If you need access to specific
tokens, etc. email us or ask either @duncan or @Daniel on Slack.
- Open the Home Directory in a Terminal
- One Mac or Linux this would look like :
cd pathToDirectory
- Once there run
npm install
so that all outstanding packages are installed - Now, run
npm start
- This will start the API as well as a frontend development server
- Now navigate to
localhost:5000
in your browser
- Run
npm run test
in the directory to run all tests - Run
npm run test-client
in the directory to run frontend tests - Run
npm run test-server
in the directory to run backend tests
- Run
npm run build
in the directory to manually build the project - See
webpack.config.js
for build config