Files
Bio-Sketch-App/README.md
Carlos Gutierrez 3029582bb4 initial commit
2025-09-02 23:12:22 -04:00

190 lines
6.4 KiB
Markdown

# 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