Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Build artifacts
dist/
build/

# Logs
*.log

# Editor directories
.vscode/
.idea/

# OS
.DS_Store
Thumbs.db

# Environment variables
.env
.env.local
.env.production

# Temporary files
tmp/
temp/
24 changes: 24 additions & 0 deletions frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
76 changes: 76 additions & 0 deletions frontend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Uvarsity Frontend

The frontend application for Uvarsity Learning Platform - an ed-tech platform focused on empowering African youth through design and technology education.

## Tech Stack

- **React 18** - Modern JavaScript library for building user interfaces
- **Vite** - Fast build tool and development server
- **Tailwind CSS v4** - Utility-first CSS framework for rapid UI development
- **ESLint** - Code linting and formatting

## Features

- βœ… Responsive design optimized for mobile and desktop
- βœ… Modern, accessible UI components
- βœ… Low-bandwidth friendly design
- βœ… Fast loading and optimized build
- βœ… Clean, semantic HTML structure

## Landing Page Sections

1. **Navigation** - Clean navigation with Uvarsity branding
2. **Hero Section** - Compelling mission statement and call-to-action
3. **Platform Features** - Six key features showcasing platform capabilities
4. **Mission Section** - Detailed mission with impact metrics
5. **Call-to-Action** - User engagement sections
6. **Footer** - Comprehensive site navigation and contact information

## Getting Started

### Prerequisites

- Node.js 18+ and npm

### Installation

```bash
# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Lint code
npm run lint

# Preview production build
npm run preview
```

### Development

The application will be available at `http://localhost:5173/` when running the development server.

## Design Considerations

- **Mobile-First**: Responsive design starting from mobile screens
- **Low-Bandwidth**: Optimized for African users with limited internet
- **Accessibility**: Semantic HTML and proper contrast ratios
- **Performance**: Fast loading with optimized assets

## Project Structure

```
src/
β”œβ”€β”€ App.jsx # Main application component with landing page
β”œβ”€β”€ index.css # Global styles with Tailwind imports
└── main.jsx # Application entry point
```

## Contributing

This frontend is part of the larger Uvarsity ecosystem. Please see the main repository README for contribution guidelines.
29 changes: 29 additions & 0 deletions frontend/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{js,jsx}'],
extends: [
js.configs.recommended,
reactHooks.configs['recommended-latest'],
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
rules: {
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
},
},
])
13 changes: 13 additions & 0 deletions frontend/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading