A modern, full-stack web application built with React.js + Vite on the frontend and FastAPI + PostgreSQL on the backend, built to empower the student innovation community at CQUniversity. Students can explore events, apply for workshops, join the community, read the blog, and submit content — with real form submissions backed by a working API.
- Fully responsive UI (Desktop + Mobile)
- Clean navigation across Home | Projects | Team | Events | Blog | Join Us
- Working Join and Bootcamp application forms — submissions are sent to the backend, stored in the database, and trigger an email notification
- Blog submission and browsing
- Dynamic Events section with categories
- Modern UI with cards, icons, hover effects, and gradient backgrounds
- Component-based frontend architecture for scalability
- REST API backend with database migrations and seed data
Frontend
| Technology | Purpose |
|---|---|
| React.js | Core UI library |
| Vite | Fast development + build setup |
| Axios | API requests to the backend |
| React Router DOM | Page navigation |
| JavaScript (ES6+) | Logic & interactions |
| HTML5 + CSS3 | Layout & styling |
Backend
| Technology | Purpose |
|---|---|
| FastAPI | REST API framework |
| PostgreSQL | Database |
| SQLAlchemy + Alembic | ORM and database migrations |
| Poetry | Python dependency management |
| Mailgun (via httpx) | Email notifications on form submission |
| Docker | Containerized backend + database |
├── src/ # React frontend
│ ├── apiClient.js # Axios client used by forms to call the backend
│ ├── components/ # JoinForm, BootCampForm, Header, Footer, etc.
│ └── pages/ # Home, Team, Blog, Events, Projects, Join
│
├── backend/ # FastAPI backend
│ ├── src/
│ │ ├── api/routers/ # blog, event, member, project, forms
│ │ ├── api/schemas/ # Pydantic request/response schemas
│ │ ├── models/ # SQLAlchemy models (incl. form submissions)
│ │ ├── config/ # Settings, database config, Mailgun settings
│ │ └── utils/ # Session helper, email notification sender
│ └── database/
│ ├── versions/ # Alembic migrations
│ └── seeders/ # Seed data for local development
│
├── Framework.md
├── Process.md
└── README.md
1. Clone the repository:
git clone https://github.com/prajitabhandari1234/WebsiteDevelopment.git2. Move into the project folder:
cd WebsiteDevelopment3. Install dependencies:
npm install4. Start the development server:
npm run devYour app will open at: 📌 http://localhost:5173/
1. Move into the backend folder:
cd backend2. Copy the example environment file and fill in your values:
cp .env.example .env3. Install dependencies with Poetry:
poetry install
poetry lock4. Run database migrations:
poetry run alembic upgrade head5. Start the API server:
poetry run uvicorn src.main:app --reloadThe API will be available at: 📌 http://localhost:8000/
Alternatively, run everything with Docker:
docker-compose up
- Admin dashboard + authentication for blog publishing
- Content moderation and notifications for admins
- Expanded event categories and filtering