Skip to content

Commit 0d768a8

Browse files
committed
some new more file were added
0 parents  commit 0d768a8

File tree

16 files changed

+852
-0
lines changed

16 files changed

+852
-0
lines changed

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: ci
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- main
7+
permissions:
8+
contents: write
9+
jobs:
10+
deploy:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- name: Configure Git Credentials
15+
run: |
16+
git config user.name github-actions[bot]
17+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
18+
- uses: actions/setup-python@v5
19+
with:
20+
python-version: 3.x
21+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
22+
- uses: actions/cache@v4
23+
with:
24+
key: mkdocs-material-${{ env.cache_id }}
25+
path: ~/.cache
26+
restore-keys: |
27+
mkdocs-material-
28+
- run: pip install mkdocs-material
29+
- run: mkdocs gh-deploy --force

.gitignore

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# MkDocs build output
2+
site/
3+
4+
# MkDocs cache
5+
.mkdocs_cache/
6+
7+
# Python bytecode
8+
__pycache__/
9+
*.py[cod]
10+
*$py.class
11+
12+
# Virtual environments
13+
.venv/
14+
venv/
15+
ENV/
16+
env/
17+
18+
# Python packaging
19+
build/
20+
dist/
21+
*.egg-info/
22+
.eggs/
23+
24+
# Pip
25+
pip-log.txt
26+
pip-delete-this-directory.txt
27+
28+
# Pytest / coverage
29+
.pytest_cache/
30+
.coverage
31+
.coverage.*
32+
htmlcov/
33+
34+
# IDEs & editors
35+
.vscode/
36+
.idea/
37+
*.swp
38+
*.swo
39+
40+
# OS files
41+
.DS_Store
42+
Thumbs.db
43+
44+
# Logs
45+
*.log
46+
47+
# Jupyter (if used)
48+
.ipynb_checkpoints/

docs/architecture/0verview.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
2+
3+
## Architecture Overview
4+
5+
This repository may appear to follow a microservices architecture; however, this was **not the original design objective**.
6+
7+
Each service was developed **independently and at different times**, with the intention of being **hosted and operated individually**. The current repository functions as a **central hub (Gecian Hub)** that brings these services together.
8+
9+
Gecian Hub primarily serves as a **showcase, collaboration, and discovery layer**, while adjacent or related services maintain their **own value, specialization, and autonomy**.
10+
11+
## Repository Structure
12+
13+
* The repository aggregates multiple **independently developed services**.
14+
* These services are **loosely coupled** and designed to function independently.
15+
* Gecian Hub acts as a **coordinator and interface**, not as a monolithic application.
16+
* For **future maintenance and security purposes**, the frontend of individual services may be integrated into the Gecian Hub, while their backends can be migrated or connected to the Gecian backend **without merging everything into a single system**.
17+
This separation is intentional and exists to support **tighter security controls and better isolation**.
18+
19+
## Backend & Frontend Architecture
20+
21+
* Both the **frontend and backend are implemented using Next.js**.
22+
* Server-side functionality is handled through **Next.js API routes and server components**, where appropriate.
23+
* The system follows a **minimal data policy**:
24+
**only data strictly required for functionality is collected and processed**.
25+
26+
⚠️ **Important**
27+
The collection or storage of unnecessary user or system data is strictly prohibited. Any violation may result in **security, compliance, or operational issues**.
28+
29+
## Storage Strategy
30+
31+
* **Indexed storage** is used wherever possible to optimize read and write performance.
32+
* The architecture is designed to operate within **free-tier hosting limitations**.
33+
* Storage usage and access patterns are carefully planned to **avoid hitting platform-imposed limits**.
34+
35+
## Performance & Cost Optimization
36+
37+
* Client-side load is kept **as low as possible**.
38+
* Heavy computation is avoided on the client whenever feasible.
39+
* **Selective caching** is applied across both frontend and backend layers to reduce redundant requests and improve performance.
40+
* Network calls are minimized, and shared resources are reused where appropriate.
41+
42+
## Key Design Principles
43+
44+
* Modular and loosely coupled services
45+
* Cost-efficient and **free-tier friendly** architecture
46+
* Minimal client payload
47+
* Indexed and optimized storage
48+
* Selective and intentional caching
49+
* **Privacy-first and security-conscious** data handling
50+

docs/architecture/technology.md

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
Below is a **clean, corrected, and professional version** of your document with the **Analytics** and **Security tooling (Snyk + Dependabot)** sections properly added.
2+
I’ve kept the tone suitable for **2025, a student-driven volunteer project**, and something you can confidently include in **reports, approvals, and resumes**.
3+
4+
---
5+
6+
# 🧱 Technology Stack & Rationale
7+
8+
This document outlines the technologies used in the project and the reasoning behind each choice. The stack is intentionally selected to be **simple, cost-effective, secure, and suitable for a student-driven, volunteer-based team in 2025**.
9+
10+
---
11+
12+
## Frontend & Backend
13+
14+
### Next.js (Frontend & Backend)
15+
16+
Both the **frontend and backend are built using Next.js**.
17+
18+
**Reasons for choosing Next.js:**
19+
20+
* Simpler development model compared to managing React separately with additional backend frameworks
21+
* Built-in support for **SEO, Server-Side Rendering (SSR), and fast initial load times**
22+
* Widely known and adopted by students and developers in **2025**
23+
* Strong ecosystem with extensive **npm package** support
24+
* Unified framework reduces architectural complexity and onboarding time
25+
26+
Using Next.js for both frontend and backend allows the team to maintain a **single, consistent technology stack**, which is critical for long-term maintainability in a volunteer project.
27+
28+
---
29+
30+
## Authentication & Security
31+
32+
### Firebase Authentication
33+
34+
Authentication is handled using **Firebase Authentication**.
35+
36+
**Reasons for choosing Firebase Auth:**
37+
38+
* Free to use within the project’s scope
39+
* Authentication and security infrastructure is managed by **Google**
40+
* Supports multiple authentication methods and additional security factors
41+
* Eliminates the need to implement and maintain custom authentication logic
42+
* Reduces risks related to **student and user data leakage**, which would be a serious concern
43+
44+
Firebase may also be used for limited storage or related services when appropriate.
45+
46+
---
47+
48+
## Database
49+
50+
### Neon (PostgreSQL)
51+
52+
The project uses **Neon** as the PostgreSQL database provider.
53+
54+
**Reasons for choosing Neon:**
55+
56+
* Generous **free-tier offering**
57+
* Fully managed PostgreSQL with modern scaling capabilities
58+
* Cost-effective for student projects
59+
* Seamless integration with Next.js and modern JavaScript stacks
60+
61+
This choice aligns with the project’s goal of remaining **free-tier friendly while production-ready**.
62+
63+
---
64+
65+
## Hosting & Deployment
66+
67+
### Netlify
68+
69+
The application is hosted on **Netlify**.
70+
71+
**Hosting decision background:**
72+
73+
* Initially explored **Cloudflare Workers (Node.js runtime)**
74+
75+
* Dropped due to limitations in full Node.js environment support
76+
77+
* Netlify was selected because:
78+
79+
* Native integration with **GitHub organizations**
80+
* No requirement to fork repositories into personal accounts
81+
* Simplified CI/CD and deployment workflows
82+
83+
While platforms like Vercel are popular, **Netlify better fits the team structure, access control needs, and workflow constraints** of this project.
84+
85+
---
86+
87+
## Testing Strategy
88+
89+
### End-to-End (E2E) Testing
90+
91+
**Playwright** is recommended for E2E testing.
92+
93+
**Reasons for choosing Playwright:**
94+
95+
* Supports modern browser automation
96+
* Can generate automation scripts from recorded user interactions
97+
* Lighter and easier to configure than Selenium
98+
* Suitable for both functional and UI testing
99+
100+
**Alternatives considered:**
101+
102+
* **Selenium** – Industry standard, but heavy and complex
103+
* **Cypress** – Good option, but setup and configuration can be more opinionated
104+
105+
---
106+
107+
### Unit & Component Testing
108+
109+
* **Jest**
110+
* **React Testing Library**
111+
112+
These tools are recommended for unit and component testing. Adoption may increase as team familiarity grows.
113+
114+
---
115+
116+
## CI / CD
117+
118+
### GitHub Actions
119+
120+
CI/CD is implemented using **GitHub Actions**.
121+
122+
**Reasons for choosing GitHub Actions:**
123+
124+
* Native integration with GitHub repositories
125+
* Centralized automation within the GitHub ecosystem
126+
* Matches the current skill level of the team
127+
* Simplifies automation for:
128+
129+
* Builds
130+
* Tests
131+
* Security checks
132+
* Deployments
133+
134+
---
135+
136+
## Analytics & Monitoring
137+
138+
### Google Analytics
139+
140+
The project integrates **Google Analytics** for usage and traffic analytics.
141+
142+
**Reasons for choosing Google Analytics:**
143+
144+
* Free and industry-standard analytics platform
145+
* Provides **real-world usage data** (active users, sessions, engagement)
146+
* Enables contributors to truthfully state analytics-related experience on their resumes
147+
* Helps the team make **data-driven decisions** instead of assumptions
148+
149+
Having real production analytics allows contributors to present their experience in a **measurable and verifiable format** (e.g., *“Managed analytics for a production PWA with X monthly users”*).
150+
151+
---
152+
153+
## Security Tooling
154+
155+
### Dependency & Vulnerability Management
156+
157+
To maintain security without heavy operational overhead, the project integrates:
158+
159+
#### **Dependabot**
160+
161+
* Automated dependency updates
162+
* Pull requests for vulnerable packages
163+
* Native GitHub integration
164+
* Helps keep dependencies up-to-date with minimal manual effort
165+
166+
#### **Snyk**
167+
168+
* Scans for vulnerabilities in:
169+
170+
* npm dependencies
171+
* Application code
172+
* Provides clear remediation guidance
173+
* Acts as an additional security layer beyond Dependabot
174+
175+
These tools help ensure that **security issues are identified early**, which is critical for a publicly accessible student platform.
176+
177+
---
178+
179+
## Project Management & Collaboration
180+
181+
### GitHub-Native Tooling
182+
183+
The project relies entirely on **GitHub’s ecosystem**:
184+
185+
* **GitHub Issues** – Bug tracking and task management
186+
* **GitHub Discussions** – Design discussions and community interaction
187+
* **GitHub Projects** – Planning, roadmaps, and task boards
188+
189+
**Why not Slack, Jira, etc.?**
190+
191+
* This is a **college project with volunteer contributors**
192+
* External tools introduce unnecessary complexity
193+
* Such tools require high discipline and constant engagement
194+
* GitHub provides sufficient functionality while keeping everything centralized
195+
196+
---
197+
198+
## Guiding Principles Behind Technology Choices
199+
200+
* Free-tier friendly
201+
* Simple onboarding for new student contributors
202+
* Secure by default
203+
* Minimal operational overhead
204+
* Fully GitHub-integrated workflow
205+
* Practical and sustainable for a volunteer-driven academic project
206+
207+
---

docs/first-year.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
2+
3+
## First-Year Student Onboarding Plan
4+
5+
### 1. During Admission Time
6+
7+
* When **first-year students arrive for admission**, our team or volunteers can be present at the **entrance**.
8+
* Politely inform them:
9+
10+
* If they want to know more about the college website and services
11+
* They can **visit the website**
12+
* They can also **install it as an app**
13+
* Keep the explanation **short and friendly**.
14+
15+
---
16+
17+
### 2. After Admissions Are Completed
18+
19+
* During the **first or second week**, conduct an **orientation session**:
20+
21+
* **Offline class** (preferred, if possible)
22+
* **Online class** if offline is not possible
23+
* In this session:
24+
25+
* Explain the **entire app**
26+
* Show how to **use key features**
27+
* Explain **how to install the app**
28+
29+
---
30+
31+
### 3. Target Audience
32+
33+
* The **main focus should be first-year students**.
34+
* Most features of the app are **especially useful for first years**, so they should be the **priority audience**.
35+
36+
37+
if we repeat this for 4 year by then we may get above 1000 user

docs/goals.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
**Goal:**
3+
Get everyone to install the **Gecian Hub app** on their phone and **use it regularly**.

0 commit comments

Comments
 (0)