β― A dynamic portfolio homepage showcasing multiple JavaScript and CSS frameworks
Built with the tools and technologies:
Table of Contents
This project is a dynamic portfolio homepage that showcases multiple JavaScript and CSS frameworks. As a Backend Engineer exploring modern frontend development, this project demonstrates the ability to work with various technologies while providing a unique experience for visitors. The homepage features a dynamic framework selection, allowing users to choose which JavaScript and CSS frameworks they want to see in action.
- Dynamic Framework Selection: Users can choose between different JavaScript and CSS frameworks.
- Monorepo Structure: Uses Npm Workspaces for efficient dependency management.
- Multiple Applications:
- React Application (frontend)
- Express.js Application (backend service)
- Framework Options:
- JavaScript Frameworks: React (default), Vue 3 (soon), Svelte (soon)
- CSS Frameworks: Bootstrap (default), Bulma, Tailwind, Uikit (soon), Foundation (soon)
- Professional Showcase: Displays experience timeline, technology stack, and contact details.
βββ fathiraz-homepage/
βββ README.md
βββ package.json
βββ .yarnrc.yml
βββ packages
β βββ api
β β βββ src
β β β βββ index.ts
β β βββ tsconfig.json
β β βββ package.json
β β βββ vercel.json
β βββ react-app
β β βββ src
β β β βββ shared
β β β β βββ components
β β β β β βββ App
β β β β β β βββ index.ts
β β β β β β βββ AppBootstrap.tsx
β β β β β βββ Resume
β β β β β βββ index.ts
β β β β β βββ ResumeBootstrap.tsx
β β β β βββ utils
β β β β βββ Helper.tsx
β β β βββ App.tsx
β β β βββ main.tsx
β β βββ index.html
β β βββ tsconfig.json
β β βββ tsconfig.node.json
β β βββ package.json
β β βββ postcss.config.js
β β βββ tailwind.config.ts
β β βββ vite.config.ts
β βββ shared
β βββ components
β βββ bootstrap
β βββ index.ts
βββ public
β βββ config.json
β βββ images
β βββ resume.json
Root
File | Summary |
---|---|
package.json | Defines the project dependencies and scripts for the root of the monorepo. |
.yarnrc.yml | Yarn configuration file specifying the node-modules linker. |
packages/react-app
File | Summary |
---|---|
tsconfig.json | TypeScript configuration for the React application. |
tsconfig.node.json | TypeScript configuration for Node.js environment in the React app. |
vite.config.ts | Vite configuration file for the React application. |
tailwind.config.ts | Tailwind CSS configuration file. |
postcss.config.js | PostCSS configuration file. |
package.json | Defines the dependencies and scripts for the React application. |
index.html | The main HTML file that serves as the entry point for the React application. |
src/App.tsx | Main React component that renders the application. |
src/main.tsx | Entry point for the React application. |
packages/react-app/src/shared
File | Summary |
---|---|
components/App/index.ts | Exports App components. |
components/App/AppBootstrap.tsx | Bootstrap-styled App component. |
components/Resume/index.ts | Exports Resume components. |
components/Resume/ResumeBootstrap.tsx | Bootstrap-styled Resume component. |
utils/Helper.tsx | Helper utilities for the React application. |
packages/api
File | Summary |
---|---|
src/index.ts | Main entry point for the Express.js API application. |
tsconfig.json | TypeScript configuration for the API application. |
vercel.json | Configuration file for deploying the API on Vercel. |
package.json | Defines the dependencies and scripts for the API application. |
packages/shared
File | Summary |
---|---|
components/bootstrap/index.ts | Exports shared Bootstrap components. |
Before you begin, ensure you have the following installed:
- Node.js (version 18 or higher)
- npm (usually comes with Node.js)
Build the project from source:
- Clone the fathiraz-homepage repository:
β― git clone https://github.com/fathiraz/fathiraz-homepage
- Navigate to the project directory:
β― cd fathiraz-homepage
- Install the required dependencies for each package:
β― npm install --workspace api && npm install --workspace react-app
Execute the test suite using the following command:
- Start the API server:
β― npm run dev --workspace api
- In a new terminal, start the React application:
β― npm run dev --workspace react-app
- Open your browser and navigate to
http://127.0.0.1:5173?css=bootstrap
to view the application.
Framework Options
- JavaScript Frameworks:
-
React App
:React JS framework (default main application) -
Vue App
: Vue JS framework -
Svelte App
: Svelte JS framework
-
- CSS Frameworks:
-
Bootstrap
:Bootstrap CSS framework -
Bulma
:Bulma CSS framework -
Tailwind
:Tailwind CSS framework -
Uikit
: Uikit CSS framework -
Foundation
: Foundation CSS framework
-
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
fathiraz-homepage
project. - Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/fathiraz/fathiraz-homepage
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Thanks to all the open-source projects and their contributors that made this project possible.
- Special thanks to the React, Vue, and Svelte communities for their excellent documentation and resources.
- Appreciation to the creators and maintainers of Bootstrap, Bulma, Tailwind, Uikit, and Foundation for their fantastic CSS frameworks.