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.
- 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.
- 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
Follow these steps to set up the project on your local machine:
git clone https://github.com/chrstncleofas/OJT.git
cd OJT
python -m venv env
env\Scripts\activate
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
- Install PostgreSQL on your local machine if not already installed.
- Create a database for the project:
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;
- Update your database credentials in settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'ojt_management',
'USER': 'ojt_user',
'PASSWORD': 'yourpassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
python manage.py makemigrations
python manage.py migrate
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'
python manage.py createsuperuser
python manage.py runserver
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.
- This project is licensed under the MIT License. See the LICENSE file for details.
-
For any inquiries, feel free to contact Christian Cleofas.
-
Email: cleofastiano27@gmail.com