mirror of
https://github.com/CarGDev/Bio-Sketch-App.git
synced 2025-09-18 13:48:31 +00:00
initial commit
This commit is contained in:
8
.expo/README.md
Normal file
8
.expo/README.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
> Why do I have a folder named ".expo" in my project?
|
||||||
|
The ".expo" folder is created when an Expo project is started using "expo start" command.
|
||||||
|
> What do the files contain?
|
||||||
|
- "devices.json": contains information about devices that have recently opened this project. This is used to populate the "Development sessions" list in your development builds.
|
||||||
|
- "settings.json": contains the server configuration that is used to serve the application manifest.
|
||||||
|
> Should I commit the ".expo" folder?
|
||||||
|
No, you should not share the ".expo" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.
|
||||||
|
Upon project creation, the ".expo" folder is already added to your ".gitignore" file.
|
3
.expo/devices.json
Normal file
3
.expo/devices.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"devices": []
|
||||||
|
}
|
139
.gitignore
vendored
Normal file
139
.gitignore
vendored
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
lerna-debug.log*
|
||||||
|
|
||||||
|
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||||
|
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# Bower dependency directory (https://bower.io/)
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# node-waf configuration
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# Snowpack dependency directory (https://snowpack.dev/)
|
||||||
|
web_modules/
|
||||||
|
|
||||||
|
# TypeScript cache
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Optional stylelint cache
|
||||||
|
.stylelintcache
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# Yarn Integrity file
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv environment variable files
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
|
# parcel-bundler cache (https://parceljs.org/)
|
||||||
|
.cache
|
||||||
|
.parcel-cache
|
||||||
|
|
||||||
|
# Next.js build output
|
||||||
|
.next
|
||||||
|
out
|
||||||
|
|
||||||
|
# Nuxt.js build / generate output
|
||||||
|
.nuxt
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Gatsby files
|
||||||
|
.cache/
|
||||||
|
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||||
|
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||||
|
# public
|
||||||
|
|
||||||
|
# vuepress build output
|
||||||
|
.vuepress/dist
|
||||||
|
|
||||||
|
# vuepress v2.x temp and cache directory
|
||||||
|
.temp
|
||||||
|
.cache
|
||||||
|
|
||||||
|
# Sveltekit cache directory
|
||||||
|
.svelte-kit/
|
||||||
|
|
||||||
|
# vitepress build output
|
||||||
|
**/.vitepress/dist
|
||||||
|
|
||||||
|
# vitepress cache directory
|
||||||
|
**/.vitepress/cache
|
||||||
|
|
||||||
|
# Docusaurus cache and generated files
|
||||||
|
.docusaurus
|
||||||
|
|
||||||
|
# Serverless directories
|
||||||
|
.serverless/
|
||||||
|
|
||||||
|
# FuseBox cache
|
||||||
|
.fusebox/
|
||||||
|
|
||||||
|
# DynamoDB Local files
|
||||||
|
.dynamodb/
|
||||||
|
|
||||||
|
# Firebase cache directory
|
||||||
|
.firebase/
|
||||||
|
|
||||||
|
# TernJS port file
|
||||||
|
.tern-port
|
||||||
|
|
||||||
|
# Stores VSCode versions used for testing VSCode extensions
|
||||||
|
.vscode-test
|
||||||
|
|
||||||
|
# yarn v3
|
||||||
|
.pnp.*
|
||||||
|
.yarn/*
|
||||||
|
!.yarn/patches
|
||||||
|
!.yarn/plugins
|
||||||
|
!.yarn/releases
|
||||||
|
!.yarn/sdks
|
||||||
|
!.yarn/versions
|
||||||
|
|
||||||
|
# Vite logs files
|
||||||
|
vite.config.js.timestamp-*
|
||||||
|
vite.config.ts.timestamp-*
|
22
App.js
Normal file
22
App.js
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import { StyleSheet, SafeAreaView } from 'react-native';
|
||||||
|
import BioSketch from './components/BioSketch';
|
||||||
|
import {
|
||||||
|
APP_BACKGROUND
|
||||||
|
} from "./utils/constants";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default function App() {
|
||||||
|
return (
|
||||||
|
<SafeAreaView style={styles.container}>
|
||||||
|
<BioSketch />
|
||||||
|
</SafeAreaView>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: APP_BACKGROUND, // UC red color as requested
|
||||||
|
},
|
||||||
|
});
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Carlos Gutierrez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
189
README.md
Normal file
189
README.md
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
# UC Biosketch React Native App
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
This React Native application displays a professional biosketch for University of the Cumberlands students. The app features a modern, responsive design with UC branding colors and follows atomic design principles with TypeScript for enhanced type safety.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Professional profile picture display
|
||||||
|
- Welcome message with course information
|
||||||
|
- Detailed biosketch section with modular components
|
||||||
|
- Responsive design for Web, Android, and iOS
|
||||||
|
- UC branding with red color scheme (#e60026)
|
||||||
|
- TypeScript implementation for better development experience
|
||||||
|
- Atomic design architecture for maintainable code
|
||||||
|
|
||||||
|
## Technical Stack
|
||||||
|
- **React Native** with Expo SDK 49
|
||||||
|
- **TypeScript** for type safety and better development experience
|
||||||
|
- **Atomic Design** principles with organized component structure
|
||||||
|
- **CSS Modules** for scoped styling
|
||||||
|
- **Expo Snack** for live editing and simulation
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
```
|
||||||
|
reactNativeProfile/
|
||||||
|
├── App.js # Main application entry point
|
||||||
|
├── app.json # Expo configuration
|
||||||
|
├── package.json # Dependencies and scripts
|
||||||
|
├── tsconfig.json # TypeScript configuration
|
||||||
|
├── babel.config.js # Babel configuration
|
||||||
|
├── .gitignore # Git ignore rules
|
||||||
|
├── components/
|
||||||
|
│ ├── BioSketch.tsx # Main biosketch component
|
||||||
|
│ ├── molecules/
|
||||||
|
│ │ └── Image.tsx # Reusable image component
|
||||||
|
│ └── organisms/
|
||||||
|
│ ├── Content.tsx # Content section component
|
||||||
|
│ ├── Footer.tsx # Footer component
|
||||||
|
│ └── Title.tsx # Title component
|
||||||
|
├── styles/
|
||||||
|
│ └── bioSketch.module.ts # CSS modules for styling
|
||||||
|
├── utils/
|
||||||
|
│ └── constants.ts # Application constants
|
||||||
|
└── assets/
|
||||||
|
└── profile-picture.jpg # Professional profile photo
|
||||||
|
```
|
||||||
|
|
||||||
|
## Atomic Design Architecture
|
||||||
|
|
||||||
|
### Molecules
|
||||||
|
- **Image.tsx**: Reusable image component with proper styling and accessibility
|
||||||
|
|
||||||
|
### Organisms
|
||||||
|
- **Title.tsx**: Welcome message and course information display
|
||||||
|
- **Content.tsx**: Main biosketch content section
|
||||||
|
- **Footer.tsx**: Footer component with additional information
|
||||||
|
|
||||||
|
### Templates
|
||||||
|
- **BioSketch.tsx**: Main template that composes all organisms and molecules
|
||||||
|
|
||||||
|
## Setup Instructions
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
- Node.js (v16 or higher)
|
||||||
|
- Expo CLI (`npm install -g @expo/cli`)
|
||||||
|
- Expo Go app for mobile testing
|
||||||
|
|
||||||
|
### Local Development
|
||||||
|
1. Clone the repository
|
||||||
|
2. Install dependencies:
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
3. Start the development server:
|
||||||
|
```bash
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
4. Use Expo Go app to scan the QR code or run on web/emulator
|
||||||
|
|
||||||
|
### Expo Snack Setup
|
||||||
|
|
||||||
|
#### 1. Launch Snack Player
|
||||||
|
- Go to https://snack.expo.dev/
|
||||||
|
- Create a new project or open existing one
|
||||||
|
|
||||||
|
#### 2. Add Your Profile Picture
|
||||||
|
- Drag and drop your professional picture into the Snack editor
|
||||||
|
- The image will be automatically placed in the assets folder
|
||||||
|
- Update the import path in `components/BioSketch.tsx` if needed
|
||||||
|
|
||||||
|
#### 3. Customize Your Biosketch
|
||||||
|
- Edit the bio text in `components/BioSketch.tsx`
|
||||||
|
- Update course information in `components/organisms/Title.tsx`
|
||||||
|
- Modify styling in `styles/bioSketch.module.ts`
|
||||||
|
- Update constants in `utils/constants.ts`
|
||||||
|
|
||||||
|
#### 4. Save and Share
|
||||||
|
- Save the project to your Expo profile as "Hands-On Assignment 2 _Lastname"
|
||||||
|
- Add description: "My BioSketch @ UC"
|
||||||
|
- Copy the shareable project link
|
||||||
|
|
||||||
|
## Key Code Features
|
||||||
|
|
||||||
|
### Welcome Message (Title Component)
|
||||||
|
```typescript
|
||||||
|
<Text style={styles.welcomeText}>
|
||||||
|
WELCOME TO THE UNIVERSITY of the CUMBERLANDS{'\n'}
|
||||||
|
Course ID: MSCS 533
|
||||||
|
</Text>
|
||||||
|
```
|
||||||
|
|
||||||
|
### BioSketch Section (Content Component)
|
||||||
|
The app includes a comprehensive biosketch with:
|
||||||
|
- Professional introduction
|
||||||
|
- Academic focus areas
|
||||||
|
- Personal interests and goals
|
||||||
|
- Current course information
|
||||||
|
|
||||||
|
### Styling (CSS Modules)
|
||||||
|
- UC red background (#e60026)
|
||||||
|
- White text for contrast
|
||||||
|
- Semi-transparent sections for visual hierarchy
|
||||||
|
- Responsive design for all screen sizes
|
||||||
|
- Modular CSS for better maintainability
|
||||||
|
|
||||||
|
### Constants Management
|
||||||
|
```typescript
|
||||||
|
// utils/constants.ts
|
||||||
|
export const UC_COLORS = {
|
||||||
|
primary: '#e60026',
|
||||||
|
white: '#ffffff',
|
||||||
|
// ... other color constants
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing Instructions
|
||||||
|
|
||||||
|
### Web Simulation
|
||||||
|
1. Click the "Web" tab in Snack or run `npm run web`
|
||||||
|
2. The app will load in your browser
|
||||||
|
3. Test responsive design and interactions
|
||||||
|
|
||||||
|
### Android Simulation
|
||||||
|
1. Click the "Android" tab in Snack or run `npm run android`
|
||||||
|
2. Use the Android emulator or scan QR code with Expo Go
|
||||||
|
3. Test touch interactions and performance
|
||||||
|
|
||||||
|
### iOS Simulation
|
||||||
|
1. Click the "iOS" tab in Snack or run `npm run ios`
|
||||||
|
2. Use the iOS simulator or scan QR code with Expo Go
|
||||||
|
3. Test iOS-specific features and gestures
|
||||||
|
|
||||||
|
## Development Scripts
|
||||||
|
- `npm start`: Start Expo development server
|
||||||
|
- `npm run android`: Start Android development build
|
||||||
|
- `npm run ios`: Start iOS development build
|
||||||
|
- `npm run web`: Start web development build
|
||||||
|
|
||||||
|
## Deliverables Checklist
|
||||||
|
- [ ] Profile picture added to assets
|
||||||
|
- [ ] Welcome message updated with course ID
|
||||||
|
- [ ] Biosketch content personalized
|
||||||
|
- [ ] Code comment added: "The code below will display my BioSketch @ UC, and it's amazing!!!!!"
|
||||||
|
- [ ] Background color set to #e60026
|
||||||
|
- [ ] Project saved to Expo profile
|
||||||
|
- [ ] Shareable link copied
|
||||||
|
- [ ] Screenshots taken for Web, Android, and iOS
|
||||||
|
- [ ] Project zip file downloaded
|
||||||
|
|
||||||
|
## Code Quality Features
|
||||||
|
- **TypeScript**: Full type safety throughout the application
|
||||||
|
- **Atomic Design**: Organized component hierarchy for maintainability
|
||||||
|
- **CSS Modules**: Scoped styling to prevent conflicts
|
||||||
|
- **Constants**: Centralized configuration management
|
||||||
|
- **Modular Architecture**: Reusable components following best practices
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
- The app uses TypeScript for better development experience and type safety
|
||||||
|
- Follows atomic design principles for maintainable and scalable code
|
||||||
|
- Responsive design works across all platforms (Web, Android, iOS)
|
||||||
|
- UC branding colors are consistently applied throughout
|
||||||
|
- CSS Modules provide scoped styling to prevent style conflicts
|
||||||
|
- Constants are centralized for easy maintenance and updates
|
||||||
|
|
||||||
|
## Support
|
||||||
|
For technical issues or questions about the implementation:
|
||||||
|
- Refer to the [Expo documentation](https://docs.expo.dev/)
|
||||||
|
- Check [React Native guides](https://reactnative.dev/docs/getting-started)
|
||||||
|
- Review [TypeScript documentation](https://www.typescriptlang.org/docs/)
|
||||||
|
- Consult atomic design principles for component organization
|
30
app.json
Normal file
30
app.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"expo": {
|
||||||
|
"name": "UC Biosketch App",
|
||||||
|
"slug": "uc-biosketch-app",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"orientation": "portrait",
|
||||||
|
"icon": "./assets/icon.png",
|
||||||
|
"userInterfaceStyle": "light",
|
||||||
|
"splash": {
|
||||||
|
"image": "./assets/splash.png",
|
||||||
|
"resizeMode": "contain",
|
||||||
|
"backgroundColor": "#e60026"
|
||||||
|
},
|
||||||
|
"assetBundlePatterns": [
|
||||||
|
"**/*"
|
||||||
|
],
|
||||||
|
"ios": {
|
||||||
|
"supportsTablet": true
|
||||||
|
},
|
||||||
|
"android": {
|
||||||
|
"adaptiveIcon": {
|
||||||
|
"foregroundImage": "./assets/adaptive-icon.png",
|
||||||
|
"backgroundColor": "#e60026"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"web": {
|
||||||
|
"favicon": "./assets/favicon.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
assets/profile-picture.jpg
Normal file
BIN
assets/profile-picture.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
6
babel.config.js
Normal file
6
babel.config.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
module.exports = function(api) {
|
||||||
|
api.cache(true);
|
||||||
|
return {
|
||||||
|
presets: ['babel-preset-expo'],
|
||||||
|
};
|
||||||
|
};
|
24
components/BioSketch.tsx
Normal file
24
components/BioSketch.tsx
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { View, ScrollView } from "react-native";
|
||||||
|
import Title from "./organisms/Title";
|
||||||
|
import Content from "./organisms/Content";
|
||||||
|
import Footer from "./organisms/Footer";
|
||||||
|
import styles from "../styles/bioSketch.module";
|
||||||
|
|
||||||
|
// The code below will display my BioSketch @ UC, and it's amazing!!!!!
|
||||||
|
const BioSketch: React.FC = () => {
|
||||||
|
return (
|
||||||
|
<ScrollView
|
||||||
|
style={styles.container}
|
||||||
|
contentContainerStyle={styles.contentContainer}
|
||||||
|
>
|
||||||
|
<View style={styles.content}>
|
||||||
|
<Title />
|
||||||
|
<Content />
|
||||||
|
<Footer />
|
||||||
|
</View>
|
||||||
|
</ScrollView>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default BioSketch;
|
18
components/molecules/Image.tsx
Normal file
18
components/molecules/Image.tsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import { View, Image } from "react-native";
|
||||||
|
import styles from "../../styles/bioSketch.module";
|
||||||
|
|
||||||
|
const CustomImage = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<View style={styles.header}>
|
||||||
|
<Image
|
||||||
|
source={require("../../assets/profile-picture.jpg")}
|
||||||
|
style={styles.profileImage}
|
||||||
|
resizeMode="cover"
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default CustomImage;
|
21
components/organisms/Content.tsx
Normal file
21
components/organisms/Content.tsx
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { View, Text } from "react-native";
|
||||||
|
import {
|
||||||
|
bioTitle,
|
||||||
|
bioText,
|
||||||
|
} from "../../utils/constants";
|
||||||
|
import Image from "../molecules/Image";
|
||||||
|
import styles from "../../styles/bioSketch.module";
|
||||||
|
|
||||||
|
const Content = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<View style={styles.bioSection}>
|
||||||
|
<Text style={styles.bioTitle}>{bioTitle}</Text>
|
||||||
|
<Text style={styles.bioText}>{bioText}</Text>
|
||||||
|
<Image />
|
||||||
|
</View>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Content;
|
15
components/organisms/Footer.tsx
Normal file
15
components/organisms/Footer.tsx
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import { View, Text } from "react-native";
|
||||||
|
import { currentCourse } from "../../utils/constants";
|
||||||
|
import styles from "../../styles/bioSketch.module";
|
||||||
|
|
||||||
|
const Footer = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<View style={styles.courseInfo}>
|
||||||
|
<Text style={styles.courseText}>{currentCourse}</Text>
|
||||||
|
</View>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Footer;
|
17
components/organisms/Title.tsx
Normal file
17
components/organisms/Title.tsx
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { Text } from "react-native";
|
||||||
|
import {
|
||||||
|
title,
|
||||||
|
courseId,
|
||||||
|
} from "../../utils/constants";
|
||||||
|
import styles from "../../styles/bioSketch.module";
|
||||||
|
|
||||||
|
const Title = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Text style={styles.welcomeText}>{title}</Text>
|
||||||
|
<Text style={styles.welcomeText}>{courseId}</Text>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Title;
|
14309
package-lock.json
generated
Normal file
14309
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
24
package.json
Normal file
24
package.json
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "uc-biosketch-app",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"main": "node_modules/expo/AppEntry.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "expo start",
|
||||||
|
"android": "expo start --android",
|
||||||
|
"ios": "expo start --ios",
|
||||||
|
"web": "expo start --web"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"expo": "~49.0.15",
|
||||||
|
"expo-status-bar": "~1.6.0",
|
||||||
|
"react": "18.2.0",
|
||||||
|
"react-native": "0.72.6",
|
||||||
|
"@types/react": "~18.2.14",
|
||||||
|
"@types/react-native": "~0.72.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.20.0",
|
||||||
|
"typescript": "^5.1.3"
|
||||||
|
},
|
||||||
|
"private": true
|
||||||
|
}
|
73
styles/bioSketch.module.ts
Normal file
73
styles/bioSketch.module.ts
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
import { StyleSheet } from "react-native";
|
||||||
|
import {
|
||||||
|
CONTAINER_BACKGROUND,
|
||||||
|
COLOR_ACCENT,
|
||||||
|
COLOR_PRIMARY,
|
||||||
|
BACKGROUND_COLOR,
|
||||||
|
} from "../utils/constants";
|
||||||
|
|
||||||
|
export default StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: CONTAINER_BACKGROUND,
|
||||||
|
},
|
||||||
|
contentContainer: {
|
||||||
|
paddingBottom: 20,
|
||||||
|
flexDirection: "column",
|
||||||
|
justifyContent: "flex-start",
|
||||||
|
},
|
||||||
|
header: {
|
||||||
|
alignItems: "center",
|
||||||
|
paddingTop: 20,
|
||||||
|
paddingBottom: 20,
|
||||||
|
},
|
||||||
|
profileImage: {
|
||||||
|
width: 150,
|
||||||
|
height: 150,
|
||||||
|
borderRadius: 75,
|
||||||
|
borderWidth: 4,
|
||||||
|
borderColor: "#ffffff",
|
||||||
|
},
|
||||||
|
content: {
|
||||||
|
paddingHorizontal: 20,
|
||||||
|
},
|
||||||
|
welcomeText: {
|
||||||
|
fontSize: 18,
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginTop: 50,
|
||||||
|
color: COLOR_ACCENT,
|
||||||
|
textAlign: "center",
|
||||||
|
marginBottom: 30,
|
||||||
|
lineHeight: 24,
|
||||||
|
},
|
||||||
|
bioSection: {
|
||||||
|
backgroundColor: BACKGROUND_COLOR,
|
||||||
|
borderRadius: 10,
|
||||||
|
padding: 20,
|
||||||
|
marginBottom: 20,
|
||||||
|
},
|
||||||
|
bioTitle: {
|
||||||
|
fontSize: 24,
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: COLOR_ACCENT,
|
||||||
|
marginBottom: 15,
|
||||||
|
textAlign: "center",
|
||||||
|
},
|
||||||
|
bioText: {
|
||||||
|
fontSize: 16,
|
||||||
|
color: COLOR_PRIMARY,
|
||||||
|
lineHeight: 24,
|
||||||
|
textAlign: "justify",
|
||||||
|
},
|
||||||
|
courseInfo: {
|
||||||
|
backgroundColor: BACKGROUND_COLOR,
|
||||||
|
borderRadius: 10,
|
||||||
|
padding: 15,
|
||||||
|
},
|
||||||
|
courseText: {
|
||||||
|
fontSize: 16,
|
||||||
|
color: COLOR_PRIMARY,
|
||||||
|
textAlign: "center",
|
||||||
|
fontWeight: "600",
|
||||||
|
},
|
||||||
|
});
|
21
tsconfig.json
Normal file
21
tsconfig.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"extends": "expo/tsconfig.base",
|
||||||
|
"compilerOptions": {
|
||||||
|
"strict": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"jsx": "react-native",
|
||||||
|
"lib": ["dom", "esnext"],
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"noEmit": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"resolveJsonModule": true
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"**/*.ts",
|
||||||
|
"**/*.tsx"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
|
}
|
11
utils/constants.ts
Normal file
11
utils/constants.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
export const title = "WELCOME TO THE UNIVERSITY of the CUMBERLANDS";
|
||||||
|
export const courseId = "Course ID: MSCS 533";
|
||||||
|
export const bioTitle = "Carlos Gutierrez";
|
||||||
|
export const bioText = `Senior Software Engineer based in Atlanta, GA. He specializes in full-stack development, cloud computing, and distributed systems, with strong expertise in React, NestJS, Java, and AWS. With experience leading frontend and backend initiatives, he has driven large-scale projects in SaaS, robotics, and telecommunications, consistently improving scalability, performance, and cost efficiency.`;
|
||||||
|
export const currentCourse = "Current Course: MSCS 533 - Advanced Software Development";
|
||||||
|
|
||||||
|
export const CONTAINER_BACKGROUND = "#605A95";
|
||||||
|
export const COLOR_ACCENT = "#EDE7F6";
|
||||||
|
export const COLOR_PRIMARY = "#FFF";
|
||||||
|
export const BACKGROUND_COLOR = "rgba(255, 255, 255, 0.1)";
|
||||||
|
export const APP_BACKGROUND = "#7540EE";
|
Reference in New Issue
Block a user