# RisingCompute Website The marketing site for **RisingCompute** — IP cores for AI, space, and robotics. - **Backend:** Django 5 + Django REST Framework + PostgreSQL - **Frontend:** Vue 3 + Vite + Vue Router - **Deployment:** any WSGI host (gunicorn + nginx) + a static-file host for the SPA --- ## Layout ``` rising-web/ ├── backend/ # Django project │ ├── risingcompute/ # Project settings, urls, wsgi, asgi │ ├── api/ # The "api" app — models, views, serializers, admin │ │ └── migrations/ # Schema + seed data │ ├── manage.py │ ├── requirements.txt │ └── .env.example ├── frontend/ # Vue 3 SPA (Vite) │ ├── src/ │ │ ├── components/ │ │ ├── views/ │ │ ├── router/ │ │ ├── api/ │ │ └── assets/styles/ │ ├── package.json │ ├── vite.config.js │ └── .env.example ├── DATABASE_SETUP.md # PostgreSQL install + provisioning ├── design-document.md # Empty template (origin) ├── filled_design_document.md # Founder-filled version └── final_design_document.md # Build-ready spec (source of truth) ``` --- ## Quick start (development) You'll need: Python 3.11+, Node 20+, PostgreSQL 14+. ### 1. Provision the database Follow [DATABASE_SETUP.md](./DATABASE_SETUP.md). At the end of it you should have: - a running PostgreSQL with a database called `risingcompute` - a user called `risingcompute` with a strong password - a `DATABASE_URL` you can paste into `backend/.env` ### 2. Run the backend ```bash cd backend cp .env.example .env # then edit DATABASE_URL + SECRET_KEY python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt python manage.py migrate # also seeds products, founders, blog posts python manage.py createsuperuser python manage.py runserver 0.0.0.0:8000 ``` Backend lives at `http://127.0.0.1:8000`. Useful URLs: - `http://127.0.0.1:8000/admin/` — Django admin (manage products, blog, openings, submissions) - `http://127.0.0.1:8000/api/health/` — uptime check - `http://127.0.0.1:8000/api/products/` — JSON list of IP cores - `http://127.0.0.1:8000/api/founders/` — founder profiles - `http://127.0.0.1:8000/api/posts/` — blog post list ### 3. Run the frontend ```bash cd frontend cp .env.example .env # optional in dev (proxy handles it) npm install npm run dev ``` Frontend lives at `http://127.0.0.1:5173`. Vite proxies `/api/*` to Django on `:8000`, so the SPA and backend behave as same-origin during dev. ### 4. Sign in to admin and check Visit `http://127.0.0.1:8000/admin/`, sign in with the superuser you created, and verify that **Products**, **Founders**, and **Blog posts** are all populated by the seed migration. Open `http://127.0.0.1:5173/` — you should see the RisingCompute homepage with three product cards and three blog teasers loaded from the API. --- ## API contract | Method | Endpoint | Purpose | |---|---|---| | GET | `/api/health/` | Service uptime | | GET | `/api/products/` | List published products | | GET | `/api/products//` | Single product | | GET | `/api/founders/` | Founder profiles for the About page | | GET | `/api/posts/` | List published blog posts | | GET | `/api/posts//` | Single post | | GET | `/api/jobs/` | Open roles | | POST | `/api/contact/` | Submit the contact / evaluation form | | POST | `/api/newsletter/` | Newsletter signup | | POST | `/api/apply/` | Job application (multipart, supports CV upload) | Submission endpoints are rate-limited to 30/hour per anonymous IP. --- ## Deployment **Backend (Django):** 1. Provision a VM (Ubuntu 22+) and follow [DATABASE_SETUP.md](./DATABASE_SETUP.md). 2. Set `DJANGO_DEBUG=False`, a real `DJANGO_SECRET_KEY`, real `DJANGO_ALLOWED_HOSTS`, and a real `DATABASE_URL` in `backend/.env`. 3. `pip install -r requirements.txt` 4. `python manage.py migrate && python manage.py collectstatic --noinput` 5. Run with gunicorn behind nginx: ```bash gunicorn risingcompute.wsgi:application --bind 0.0.0.0:8000 --workers 3 ``` 6. Point nginx at gunicorn for `/api/` and `/admin/`, and serve `/static/` from `backend/staticfiles/`. **Frontend (Vue SPA):** 1. Set `VITE_API_BASE_URL=https://risingcompute.in` (or your API host). 2. `npm run build` → produces `frontend/dist/`. 3. Serve the `dist/` folder from any static host (nginx, Vercel, Cloudflare Pages, Netlify, S3+CloudFront). Make sure unknown paths fall back to `index.html` (SPA history mode). --- ## Editing content All marketing content is editable from the Django admin: - **Products** — name, tagline, summary, description, benefits, features, spec table (JSON). - **Founders** — bios, photo URLs, LinkedIn. - **Blog posts** — title, excerpt, markdown body, category, author. - **Job openings** — open / closed, description, location. - **Submissions** — Contact submissions, Newsletter signups, Job applications all show up here for triage. The seed migration (`api/migrations/0002_seed_initial_data.py`) populates the initial copy. Re-running migrations does not overwrite edits you've made in the admin (it uses `update_or_create`, so it will re-sync defaults — edit copy in the admin to make changes stick). --- ## Brand reference Aligned with the company core values — **Fast · Reliable · Robust**. - Primary: `#0B1437` (Deep Space Indigo) - Surface: `#1A2347` (Slate Navy) - Accent: `#00E5FF` (Accelerate Cyan) - Text: `#F4F6FB` (Mist) - Type: Inter + JetBrains Mono - Default theme: dark - Motion: subtle (fade-ins, hover lifts, one animated hero datapath). Respects `prefers-reduced-motion`. --- ## License Proprietary. © RisingCompute Pvt Ltd.