https://github.com/amirmx2905/investigators
A web platform connecting researchers in Mexico to collaborate on projects, articles, and events. Designed as a specialized networking tool for the CIATEQ community, it helps researchers find collaborators based on expertise, fostering interdisciplinary cooperation.
https://github.com/amirmx2905/investigators
axios-react django django-rest-framework docker docker-compose eslint javascript jwt nginx-docker postgresql python react react-router-dom swagger-ui tailwindcss vite
Last synced: 2 months ago
JSON representation
A web platform connecting researchers in Mexico to collaborate on projects, articles, and events. Designed as a specialized networking tool for the CIATEQ community, it helps researchers find collaborators based on expertise, fostering interdisciplinary cooperation.
- Host: GitHub
- URL: https://github.com/amirmx2905/investigators
- Owner: amirmx2905
- License: mit
- Created: 2025-03-12T00:56:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-09T04:27:39.000Z (about 1 year ago)
- Last Synced: 2025-09-02T04:26:23.753Z (10 months ago)
- Topics: axios-react, django, django-rest-framework, docker, docker-compose, eslint, javascript, jwt, nginx-docker, postgresql, python, react, react-router-dom, swagger-ui, tailwindcss, vite
- Language: JavaScript
- Homepage:
- Size: 27.6 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Investigators
A web platform connecting researchers in Mexico to collaborate on projects, articles, and events. Designed as a specialized networking tool for the CIATEQ community, it helps researchers find collaborators based on expertise, fostering interdisciplinary cooperation.
## Tech Stack
## Setup Guide
This guide will help you set up the project on either Mac or Windows.
### Prerequisites
- Docker and Docker Compose
- Git
## Installation Steps
### 1. Clone the Repository
```bash
git clone https://github.com/amirmx2905/Investigators.git
cd Investigators
```
### 2. Create Environment File
Create a `.env` file in the `Investigators` directory with the following content:
```bash
# Django settings
DEBUG=True
SECRET_KEY=[|/Ur0JeBDBvuE=?%60p.I9]?V9~rKj{ASSb](O-kzVA\zM>FU #Change this secret key to a random value in production
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:80,http://localhost
# Database settings
DB_ENGINE=django.db.backends.postgresql
DB_NAME=investigators
DB_USER=postgres
DB_PASSWORD=your_password # Make sure to use a strong password
DB_HOST=db
DB_PORT=5432
# Frontend settings
VITE_API_URL=http://localhost/api
TIME_ZONE=UTC
```
`Note`: In the .env file you should only change the DB_PASSWORD field (for database security). The other variables are configured to work with the Docker setup and should remain as provided.
### 3. Start the Docker Containers
The first time you start the Docker containers you should use the following command:
```bash
docker-compose up --build
```
This command will:
- Build all necessary Docker images (the --build flag ensures everything is built from scratch)
- Create containers for PostgreSQL, Django backend, React frontend, and Nginx
- Set up networking between containers
- Load initial test data into the database
- Start all services
### 4. Access the Application
Once all containers are running, you can access:
- Frontend: http://localhost/
- API: http://localhost/api/
- API Documentation: http://localhost/api/docs/
### 5. Default Admin User
The applicacion comes with a pre-configured admin user to access the frontend:
- Username: admin
- Password: admin
### 6. Stopping the Application
To stop all containers, use the following command:
```bash
docker-compose down
```
### 7. For Subsequent Runs
After the initial build, you can use the following command:
```bash
docker-compose up
#or ctrl+c
```
### 8. Rebuilding after Code Changes
If you make changes to the code and need to rebuild:
```bash
docker-compose up --build
```
## Project Structure
```bash
Investigators/
├── backend/ # Django backend
│ ├── investigators/ # Main app
│ ├── project/ # Project settings
│ ├── manage.py # Django management script
│ └── requirements.txt
├── frontend/ # React frontend
│ ├── src/ # Source code
│ ├── package.json # Node dependencies
│ └── vite.config.js # Vite configuration
├── nginx/ # Nginx configuration for production
│ ├── conf/ # Config files
│ └── Dockerfile # Nginx Docker image
├── docker-compose.yml # Docker services configuration
└── .env # Environment variables
```
## Working with the Application
You can access the PostgreSQL database using:
```bash
# Connect to the PostgreSQL container
docker exec -it investigators-db-1 bash
# Connect to the database
psql -U postgres -d investigators
# Within psql, you can run SQL queries
# For example, list all tables:
\dt
```
Or using a database tool like DBeaver, connect with:
```bash
Host: localhost
Port: 5433 (mapped port in docker-compose)
Database: investigators
User: postgres
Password: your_password (or whatever you set in .env)
```
## Troubleshooting
### Port Conflicts
If you see errors about ports already in use:
```bash
# Stop any current PostgreSQL service
sudo service postgresql stop # Linux
brew services stop postgresql # Mac
```
Or change the external port in `docker-compose.yml`
```bash
ports:
- "5433:5432" # Change 5433 to any available port
```
### Container Fails to Start:
Check the logs for specific errors:
```bash
docker-compose logs backend
docker-compose logs frontend
docker-compose logs nginx
```
## License
This project is licensed under the MIT License - see the `LICENSE` file for details.
## Authors
- [@amirmx2905](https://github.com/amirmx2905)
- [@WatchfulInk](https://github.com/WatchfulInk)