summaryrefslogtreecommitdiff
path: root/README.md
blob: 688c96aeb06349b26d7ba0bc9d944ace60a4db06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Converting Static Website to Astro Framework: Documentation

This project aims to convert a static website into the Astro framework, leveraging Astro's modern static site generation capabilities for improved performance, maintainability, and responsiveness.

## Introduction

The provided static website has been converted into the Astro framework, utilizing HTML, CSS (Bootstrap/Tailwind), and Vanilla JavaScript. The conversion process involved refactoring the codebase into reusable Astro components, implementing responsive design principles, and optimizing performance using Astro's features.

## 🚀 Project Structure

Inside of project, you'll see the following folders and files:

```text
/
├── public/
├── src/
│   ├── components/
│   ├── content/
│   ├── layouts/
│   ├── lib/
│   └── pages/
└── .gitignore
└── astro.config.mjs
└── package.json
└── README.md
```

The project directory includes the following folders for managing content:

- **FAQ**: Located in `src/content/faq`.

  - Add new FAQs by creating Markdown files with `Number`, `question`, and `answer`.

- **Footer**: Contains `about` and `resources` subfolders.

  - **About**: Located in `src/content/footer/about`.
    - Add new about links using Markdown files with `Number`, `name`, and `link`.
  - **Resources**: Located in `src/content/footer/resources`.
    - Add new resource links using Markdown files with `Number`, `name`, and `link`.

- **Homepage**: Contains `coreTeam`, `partner`, `purpose`, and `significance` subfolders.

  - **Core Team**: Located in `src/content/homepage/coreTeam`.
    - Add new team members using Markdown files with `Number`, `name`, `position`, and `institute`.
  - **Partner**: Located in `src/content/homepage/partner`.
    - Add new partners using Markdown files with `Number` and `description`.
      -Remember that position is an `array` as the person can have multiple positions in the company, so you have to enclose the whole position content in square brackets `[]`, text in double quotes `""`, and separate each text with a comma `,`.
  - **Purpose**: Located in `src/content/homepage/purpose`.
    - Add new purposes using Markdown files with `Number` and `description`.
  - **Significance**: Located in `src/content/homepage/significance`.
    - Add new significance content using Markdown files with `Number`, `intro`, `point` (array), and `end`.
    - Remember that point is an `array` so you have to enclose the whole point content in square brackets `[]`, text in double quotes `""`, and separate each text with a comma `,`.

- **Navbar Routes**: Located in `src/content/navbarRoutes`.

  - Add new routes using Markdown files with `Number`, `path`, and `name`.
  - For same page links, use `#` followed by the section id and for external links, use the full URL.

- **Partners Carousel Logos**: Located in `src/content/partnersCarouselLogos`.

  - Add new partner logos to the carousel using Markdown files with `Number`, `img`, `alt`, and `link`.
  - link is optional, keep it blank `""` if not available.

- **Resources Page**: Located in `src/content/resourcesPage`.

  - Add new resources using Markdown files with `Number`, `heading`, and `points` (list).
  - Add hyphen and for `text` and `link`, keep the `title` encloded in square brackets `[]` and then the `link` in round brackets `()`.

- **Schedule Events**: Located in `src/content/scheduleEvents`.

  - Add new schedule events using Markdown files with `Number`, `heading`, and `events` (list).
  - Add hyphen and then the event name.

- **Top Bar Logo**: Located in `src/content/topBarLogo`.
  - Add new top bar logos using Markdown files with `Number`, `link`, `img`, `alt`, `classname`, and `id`.
  - Just keep the `classname` as `img-fluid logos` and `id` blank `""`.

## Setup Instructions

To run the project locally, follow these steps:

1. Clone the repository using the following command:

```bash
git clone https://github.com/mannubhai1/Fossee.git
```

## Navigate to the project directory:

```bash
cd FOSSEE
```

## Install dependencies:

```bash
npm install
```

## Start the development server:

```bash
npm run start
```

### Open your browser and navigate to http://localhost:4321 to view the converted website.

## Deployment

The converted website has been deployed using Netlify and is accessible via the following URL:

## Package Use

- **Tailwind CSS**: Employed for comprehensive styling and design consistency.
- **Astro**: Utilized for efficient static site generation and improved performance.
- **Lucia**: Integrated for streamlined authentication and user management functionalities.
- **Better SQLite 3**: Implemented for robust and scalable database operations.

## License

This project is licensed under the MIT License.

## Challenges Faced

Adapting the navbar, accordion, and carousel components for mobile responsiveness proved challenging, as reliance on pre-made templates from Bootstrap and Tailwind was not viable within the Astro framework. Designing these components from scratch required extensive time and effort, especially as I lacked prior experience in creating responsive designs independently.