https://github.com/8bituhm/acmmanoa-site
The Association for Computing Machinery website
https://github.com/8bituhm/acmmanoa-site
django postgresql tailwindcss
Last synced: 5 months ago
JSON representation
The Association for Computing Machinery website
- Host: GitHub
- URL: https://github.com/8bituhm/acmmanoa-site
- Owner: 8bitUHM
- Created: 2025-03-23T06:31:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-30T21:31:35.000Z (10 months ago)
- Last Synced: 2025-09-30T23:24:48.763Z (10 months ago)
- Topics: django, postgresql, tailwindcss
- Language: Python
- Homepage:
- Size: 431 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **The Association for Computing Machinery at the University of Hawaii at Manoa (ACM)**
This is the ACM website, ported from the old site [here](https://acmmanoa.org/) to Django.
The old site repository can be found [here](https://github.com/ACManoa/acmanoa.github.io)
## **Table of Contents**
1. [Project Structure](#project-structure)
2. [Getting the App Running](#getting-the-app-running)
---
## **Project Structure**
The project is organized into several components:
- **`core/`**: The main Django project directory.
- `settings.py`: Configuration settings for the project, including database settings, middleware, installed apps, and other configurations.
- `urls.py`: URL configuration for the project, mapping URLs to views.
- **`db_file_storage/`**: A file storage system that allows storing files as raw bytes and mimetypes in the database.
- **`website/`**: The Django app for the website.
- `migrations/`: Database migration files.
- `static/`: Static files (CSS, JavaScript, images).
- `templates/`: HTML templates.
- `admin.py`: Admin interface configuration.
- `forms.py`: Defines forms for user input and validation.
- `models.py`: Defines database structure and interactions.
- `serializers.py`: Converts complex data types into JSON, XML, or other formats.
- `tests.py`: Unit tests.
- `urls.py`: URL configuration for the website app.
- `views.py`: Handles HTTP requests and returns responses.
- **Project root files:**
- `manage.py`: Django’s command-line utility for administrative tasks.
- `requirements.txt`: Contains project dependencies.
---
## **Getting the App Running**
### **Prerequisites**
Ensure you have **Python 3.8+** installed. You can check your Python version with:
```sh
python --version
```
or
```sh
python3 --version
```
If Python is not installed, download and install it from [python.org](https://www.python.org/downloads/).
---
### **Setup Instructions**
1. **Clone the repository**
Open a terminal and run:
```sh
git clone https://github.com/your-repo/acmmanoa-site.git
cd acmmanoa-site
```
2. **Create a virtual environment (recommended)**
```sh
python -m venv venv
source venv/bin/activate # On macOS/Linux
venv\Scripts\activate # On Windows
```
3. **Install dependencies**
```sh
pip install -r requirements.txt
```
4. **Create a local settings file**
Inside the `core/` directory, create a new file named `local_settings.py` and add the following:
```python
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
DEBUG = True
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
```
5. **Create a `.env` file**
In the `core/` directory, create a new file named `.env` and add the required environment variables.
These variables can be found in the **acmmanoa** project Discord channel.
6. **Apply database migrations**
```sh
python manage.py migrate
```
7. **Collect static files**
```sh
python manage.py collectstatic
```
8. **Create a superuser (optional, for admin access)**
```sh
python manage.py createsuperuser
```
Follow the prompts to set up an admin account.
9. **Run the development server**
```sh
python manage.py runserver
```
The app should now be running locally at **[http://127.0.0.1:8000](http://127.0.0.1:8000/)**.
---
### **Development Notes**
- The **admin panel** is accessible at **[http://127.0.0.1:8000/admin/](http://127.0.0.1:8000/admin/)**.
- If you make changes to the models, run:
```sh
python manage.py makemigrations
python manage.py migrate
```
- If you add new static files, re-run:
```sh
python manage.py collectstatic
```
---
### **License**
This project is maintained by ***8bit***.