Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chrstncleofas/ojt

This is the first stable release of the On the Job Training Management System. The system is built using Python Django, PostgreSQL, and other modern web technologies. This release includes key features such as time logging, document management, and progress tracking for OJT students.
https://github.com/chrstncleofas/ojt

bootstrap css django-framework ec2-instance godaddy gunicorn html javascript nginx postgresql python3 route53-zone s3-bucket

Last synced: about 1 month ago
JSON representation

This is the first stable release of the On the Job Training Management System. The system is built using Python Django, PostgreSQL, and other modern web technologies. This release includes key features such as time logging, document management, and progress tracking for OJT students.

Awesome Lists containing this project

README

        

# On the Job Training Management System

This project is an **On the Job Training Management System** developed using **Python Django**, **PostgreSQL**, and other modern web technologies. It is designed to manage OJT records, including **time logs**, **progress tracking**, and **document management**.

The project is deployed on an AWS EC2 instance, with **AWS S3** for media storage, **Nginx**, and **Gunicorn** as the application server. This guide will help you set up the project locally for development.

---

## Features

- **User Management**: Separate roles for admin, students, and company coordinators.
- **Time Logging**: Clock in/out system with support for lunch breaks.
- **Document Management**: Upload and manage documents via AWS S3.
- **Progress Tracking**: Real-time progress monitoring.
- **Mobile Responsiveness**: Designed with **Bootstrap** for a fully responsive UI.

---

## Technologies Used

- **Backend**: Python (Django Framework)
- **Database**: PostgreSQL
- **Frontend**: HTML, CSS, JavaScript, Bootstrap
- **Hosting**: AWS EC2 Instance
- **File Storage**: AWS S3 Bucket
- **Domain**: GoDaddy
- **DNS Management**: AWS Route 53
- **Server Management**: Nginx, Gunicorn

---

## Local Setup Instructions

Follow these steps to set up the project on your local machine:

### 1. Clone the Repository

```bash
git clone https://github.com/chrstncleofas/OJT.git
cd OJT
```

### 2. Create and Activate a Virtual Environment

### For Windows

```bash
python -m venv env
env\Scripts\activate
```

### For Mac/Linux

```bash
python3 -m venv env
source env/bin/activate
```

### 3. Install Required Dependencies

```bash
pip install -r requirements.txt
```

### 4. Set Up PostgreSQL Database

1. Install PostgreSQL on your local machine if not already installed.
2. Create a database for the project:

```bash
CREATE DATABASE ojt_management;
CREATE USER ojt_user WITH PASSWORD 'yourpassword';
ALTER ROLE ojt_user SET client_encoding TO 'utf8';
ALTER ROLE ojt_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE ojt_user SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE ojt_management TO ojt_user;
```

3. Update your database credentials in settings.py:

```bash
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'ojt_management',
'USER': 'ojt_user',
'PASSWORD': 'yourpassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
```

### 5. Apply Migrations

```bash
python manage.py makemigrations
python manage.py migrate
```

### 6. Set Up AWS S3 Bucket

```bash
AWS_STORAGE_BUCKET_NAME = 'your-bucket-name'
AWS_ACCESS_KEY_ID = 'your-access-key'
AWS_SECRET_ACCESS_KEY = 'your-secret-key'
AWS_S3_REGION_NAME = 'your-region'
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
```

### 7. Create a Superuser

```bash
python manage.py createsuperuser
```

### 8. Run the Development Server

```bash
python manage.py runserver
```

## Deployment

**The project is deployed using the following technologies**:

- AWS EC2: Hosting the application.
- AWS S3: Storing media files.
- Nginx: Acting as a reverse proxy.
- Gunicorn: WSGI application server.
- AWS Route 53: DNS management.
- To replicate this deployment:

**Follow Django Deployment Docs**.
- Configure Nginx and Gunicorn as per your environment.

## License
- This project is licensed under the MIT License. See the LICENSE file for details.

## Contact
- For any inquiries, feel free to contact Christian Cleofas.

- Email: [email protected]
- GitHub: https://github.com/chrstncleofas