An ongoing project
Farmy is an efficient AgricEcommerce solution where everyone can buy fresh agricultural products directly from farmers and allow farmers to sell their products with no extra fees in between. It is an online market for buyers and sellers, but exclusively for the agricultural sector
Here's why:
-
Middlemen intervention raise price for consumers. Farmers encounter high production costs in their efforts to boost production but hardly get fair pricing of their products from the middlemen. This attitude of middle men have discouraged genuine investors getting into agriculture because of the marginal profit associated with it as the middle men cart away the bulk of the profits. Thus, the activities of middlemen seem to be a threat to food security.
-
Farmy allows farmers to freely list their produce and allows potential sellers to go through them. The buyer can list the quantity of the produce. Location of the buyer is also listed. Sellers can browse through the listed products and contact the buyer directly.
List of major frameworks use to build getIdea.
- API:
- Authentication system - express-session
- Sign up - bcrypt
- login
- Authorization system
- Role-based access control
- Principle of least privilege
- Input validation and sanitization - validator
- Integration testing - jest - supertest
- Docker support - node
- Prod mode - See server/Dockerfile
- API Security
- The API is protected with express-session. This allows the application to identify authorized users and restrict access to data for unauthorised users
- Passwords have also been hashed with strong a crypto-algorithm.
- A structure has been established for the implementation of rate-limiting, to circumvent DOS security vulnerabilities with the system.
- user inputs are sanitized against xss and Nosql injection
- Authentication system - express-session
git clone https://gitlab.com/calvin-puram/farmy.git
cd farmy
cp .env.example /.env
# Edit all three .env files to meet your requirements
In the root
directory, run:
npm install
You can start the server using docker-compose
:
docker-compose up -d