A full-stack application for managing datasets and user profiles.
├── Backend/ # FastAPI backend
│ ├── src/ # Source code
│ ├── requirements.txt # Python dependencies
│ └── .env.template # Environment variables template
├── Frontend/ # React frontend
│ ├── src/ # Source code
│ └── .env.template # Environment variables template
└── library/ # Shared library code
- Python 3.9 or higher
- Node.js 18 or higher
- MongoDB
- Azure Storage Account
- Create a
.env
file in the Backend directory using.env.template
as reference - Install dependencies:
cd Backend
pip install -r requirements.txt
- Create a
.env
file in the Frontend directory using.env.template
as reference - Install dependencies:
cd Frontend
npm install
cd Backend
uvicorn src.main:app --reload --port 5000
cd Frontend
npm run dev
- Set up environment variables in your production environment
- Install production dependencies:
pip install -r requirements.txt
- Run with a production ASGI server:
gunicorn src.main:app -w 4 -k uvicorn.workers.UvicornWorker
- Set up environment variables in your production environment
- Build the frontend:
npm run build
- Deploy the contents of the
dist
directory to your static hosting service
- All sensitive credentials must be stored in environment variables
- API keys and secrets should never be committed to the repository
- CORS is configured for specific origins only
- Rate limiting is enabled for API endpoints
- Error handling and logging are configured for production
- Backend logs are stored in the
logs
directory with timestamp-based filenames - Production errors are properly sanitized before being sent to clients
- All API endpoints have proper logging with request tracking
MONGODB_URL
: MongoDB connection stringDATABASE_NAME
: MongoDB database nameAZURE_STORAGE_CONNECTION_STRING
: Azure Storage connection stringAZURE_CONTAINER_NAME
: Azure Storage container namePORT
: API server port (default: 5000)ENV
: Environment name (development/production)
VITE_API_BASE_URL
: Backend API URLVITE_API_URL
: API endpoint prefixVITE_ENCRYPTION_KEY
: Encryption key for sensitive dataREACT_APP_FIREBASE_*
: Firebase configuration variables
This project is licensed under the MIT License - see the LICENSE file for details