134 lines
3 KiB
Markdown
134 lines
3 KiB
Markdown
# Semblance Synthetic Society
|
|
|
|
A platform for creating and managing synthetic personas for focus groups and market research.
|
|
|
|
## Project info
|
|
|
|
**URL**: https://lovable.dev/projects/ee7a424f-7f6c-4b5d-9645-e66074cea7d3
|
|
|
|
## Features
|
|
|
|
- Create and manage synthetic personas with detailed profiles
|
|
- Organize personas into focus groups
|
|
- Run interactive focus group sessions
|
|
- Analyze results and extract insights
|
|
- MongoDB-based backend for data persistence
|
|
- User authentication and access control
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js & npm installed - [install with nvm](https://github.com/nvm-sh/nvm#installing-and-updating)
|
|
- Python 3.8+ installed for the backend
|
|
- MongoDB installed and running locally (default configuration: mongodb://localhost:27017)
|
|
|
|
### Installation
|
|
|
|
```sh
|
|
# Step 1: Clone the repository
|
|
git clone <YOUR_GIT_URL>
|
|
|
|
# Step 2: Navigate to the project directory
|
|
cd <YOUR_PROJECT_NAME>
|
|
|
|
# Step 3: Install frontend dependencies
|
|
npm install
|
|
|
|
# Step 4: Install backend dependencies
|
|
cd backend
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
pip install -r requirements.txt
|
|
cd ..
|
|
```
|
|
|
|
### Running the Application
|
|
|
|
Use the provided start script to run both frontend and backend:
|
|
|
|
```sh
|
|
./start.sh
|
|
```
|
|
|
|
The start script will:
|
|
1. Check for and start MongoDB if needed
|
|
2. Set up the Python virtual environment
|
|
3. Install dependencies
|
|
4. Populate the database with sample personas and focus groups
|
|
5. Start both the backend and frontend servers
|
|
|
|
Or run them separately:
|
|
|
|
```sh
|
|
# Start the backend
|
|
cd backend
|
|
source venv/bin/activate
|
|
python run.py
|
|
|
|
# In another terminal, run the frontend
|
|
npm run dev
|
|
```
|
|
|
|
The frontend will be available at http://localhost:5173
|
|
The backend API is available at http://localhost:5137/api
|
|
|
|
### Default Login
|
|
|
|
- Username: user
|
|
- Password: pass
|
|
|
|
## Technology Stack
|
|
|
|
### Frontend
|
|
- Vite
|
|
- TypeScript
|
|
- React
|
|
- React Router
|
|
- shadcn-ui
|
|
- Tailwind CSS
|
|
- Axios for API requests
|
|
|
|
### Backend
|
|
- Python
|
|
- Flask
|
|
- PyMongo (MongoDB client)
|
|
- JWT for authentication
|
|
|
|
## Project Structure
|
|
|
|
- `/src`: Frontend source code
|
|
- `/components`: React components
|
|
- `/contexts`: React contexts for state management
|
|
- `/hooks`: Custom React hooks
|
|
- `/lib`: Utility functions and API client
|
|
- `/pages`: Main application pages
|
|
- `/types`: TypeScript type definitions
|
|
- `/backend`: Python backend
|
|
- `/app`: Flask application
|
|
- `/models`: Database models
|
|
- `/routes`: API endpoints
|
|
- `run.py`: Backend entry point
|
|
|
|
## Deployment
|
|
|
|
The application is configured to be deployed at the `/semblance/` path. For hosting:
|
|
|
|
1. Build the frontend:
|
|
```sh
|
|
npm run build
|
|
```
|
|
|
|
2. Deploy the backend using a WSGI server like Gunicorn:
|
|
```sh
|
|
cd backend
|
|
gunicorn -w 4 "app:create_app()"
|
|
```
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
|
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
5. Open a Pull Request
|