This Project is part of my IT325 Web Services Course in Tunis Business School by Prof. Montassar Ben Massoud
In the realm of agriculture, passing down skills like crop planning through practice and apprenticeship is crucial. However, the memorization it demands poses a challenge, especially for novice farmers. Enter FarCal, designed to simplify crop planning and alleviate the burden of memorization, empowering farmers with efficient tools for success.
FarCal, an API rooted in the Traditional Knowledge of the Tunisian Agricultural Calendar, offers tailored suggestions for agricultural endeavors. Aimed primarily at novice farmers, the platform provides a user-friendly interface where individuals can register and effortlessly select a crop and date of interest. Once submitted, FarCal taps into its extensive database to offer the most pertinent suggestions for that particular crop on the chosen date.
- Python 3.10: necessary for API Frameworks and modules
- FastAPI: web framework for building APIs
- PostgreSQL: Relational Database Management System
- SQLAlchemy: Connection between Database and API
- Pydantic: Model Definition and Data Validation
- OAuth2.0: Authentication
- Swagger: API Documentation
The Backend consists of three main classes: Users, Crops and Agricultural Periods, and two intermediate classes: Suggestions (Contains all the suggestions for every crop in all agricultural periods) and Personal Suggestions (User saved suggestions).
-
Clone this repo
-
Run the backend server:
uvicorn main:app --reload
-
Run the frontend development server:
npm start

