This project helps humanitarian actors complete needs assessments for Distribute Aid through a user-friendly web interface. It includes:
- ✅ A Next.js frontend (React, TypeScript, Tailwind CSS)
- ✅ A Flask backend using Poetry for Python dependency management
- 🌐 Optional Gitpod support for cloud-based development
Gitpod provides a fully automated development environment for your Next.js project, and the development environment is set up with just a single click. Follow these steps to get started:
- Click the
Open in Gitpod
button above. Note: you'll need to have an account on Gitpod before proceeding with the next steps (this requires a GitHub account). - Click the
Continue
button. - Relax, a development environment is being set up for you in the first terminal.
- To access your workspace later, go to Gitpod Workspaces. Pin the
needs-assessment-v2
workspace to prevent auto-deletion after 14 days by clicking the three dots next to the workspace name and selecting "Pin".
git clone https://github.com/distributeaid/needs-assessment-v2.git
cd needs-assessment-v2
yarn install
Make sure you have Poetry installed:
cd backend
poetry install
Create your local .env
file:
cp .env.example .env
yarn dev
Visit http://localhost:3000
yarn dev:backend
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name
). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature-name
). - Open a pull request.
-
Implement critical features:
- Incorporate a real authentication system (waiting on updates)
- Get initial Assessment questions from Strapi (waiting on strapi deploy)
-
Enhance Form Components:
- Add validation and user-friendly error messages for required fields.
-
UI/UX Enhancements:
- Add animations/transitions using for smoother interactions.
- Implement responsive design.
-
Assessment Summary Page:
- Add estimated total quanties of items needed based on user input.
-
Loading and Error States:
- Improve error handling with user-friendly messages and retry options.
-
Add Role-Based Access Control (RBAC):
- Implement roles (Admin, Contributor, Viewer) with different permissions for Assessments and responses.
-
Optimize Database Queries:
- Review and optimize queries to reduce response times.
-
Audit Logging:
- Track changes to Assessments and responses in an audit log for accountability.
-
Add Unit and Integration Tests:
- Write tests for additional API routes.
- Add tests for form validation and submission.
- Add tests for React components.
-
Data Visualization Dashboard:
- Build a dashboard to visualize Assessment responses using Chart.js or Recharts.
-
Import/Export Assessments:
- Add functionality to import/export Assessments and responses as CSV or JSON.
- Port Conflicts:
- Make sure ports
3000
(Next.js) and5000
(Flask) are not in use by other applications.
- Make sure ports
This project is licensed under the MIT License.