An open API service indexing awesome lists of open source software.

https://github.com/karan-develops/local-link

A hyper-local digital noticeboard for Indian neighborhoods. Post and view public events & notices relevant to your nearby area.
https://github.com/karan-develops/local-link

full-stack nextjs

Last synced: 10 months ago
JSON representation

A hyper-local digital noticeboard for Indian neighborhoods. Post and view public events & notices relevant to your nearby area.

Awesome Lists containing this project

README

          

# Local Link - A hyper-local digital noticeboard

## Table of Contents

- [Introduction](#introduction)
- [Features](#features)
- [Technologies Used](#πŸ“šTech-Stack)
- [Installation](#πŸ’»Installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)

## Introduction

A hyper-local digital noticeboard for Indian neighborhoods. Post and view public events & notices relevant to your nearby area.

![banner](https://raw.githubusercontent.com/Karan-develops/Local-Link/refs/heads/main/App.png)

## πŸ“šTech-Stack

- **(Next Full Stack):**
- React.js
- Next.js
- Shadcn-ui
- TailwindCSS
- TypeScript
- Zod - Form Validation
- Framer-motion
- Firebase
- **Database:**
- Neon
- PostgreSQL
- Firebase
- Cloudinary
- **Version Control:**
- Git

```
## πŸ“ File Structure :
Directory structure:
└── next/
β”œβ”€β”€ README.md
β”œβ”€β”€ components.json
β”œβ”€β”€ eslint.config.mjs
β”œβ”€β”€ next.config.ts
β”œβ”€β”€ package.json
β”œβ”€β”€ postcss.config.mjs
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ actions/
β”‚ β”œβ”€β”€ comments.actions.ts
β”‚ β”œβ”€β”€ dashboard.actions.ts
β”‚ β”œβ”€β”€ helper.actions.ts
β”‚ β”œβ”€β”€ notices.actions.ts
β”‚ β”œβ”€β”€ notifications.actions.ts
β”‚ └── user.actions.ts
β”œβ”€β”€ app/
β”‚ β”œβ”€β”€ globals.css
β”‚ β”œβ”€β”€ layout.tsx
β”‚ β”œβ”€β”€ page.tsx
β”‚ β”œβ”€β”€ api/
β”‚ β”‚ β”œβ”€β”€ comments/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ β”œβ”€β”€ create-user/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ β”œβ”€β”€ dashboard/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ β”œβ”€β”€ notices/
β”‚ β”‚ β”‚ β”œβ”€β”€ route.ts
β”‚ β”‚ β”‚ └── [id]/
β”‚ β”‚ β”‚ β”œβ”€β”€ route.ts
β”‚ β”‚ β”‚ └── upvote/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ β”œβ”€β”€ notifications/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ β”œβ”€β”€ post-notices/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ β”œβ”€β”€ set-session/
β”‚ β”‚ β”‚ └── route.ts
β”‚ β”‚ └── upload-on-cloudinary/
β”‚ β”‚ └── route.ts
β”‚ β”œβ”€β”€ auth/
β”‚ β”‚ └── page.tsx
β”‚ β”œβ”€β”€ dashboard/
β”‚ β”‚ └── page.tsx
β”‚ β”œβ”€β”€ map/
β”‚ β”‚ └── page.tsx
β”‚ β”œβ”€β”€ notices/
β”‚ β”‚ β”œβ”€β”€ page.tsx
β”‚ β”‚ └── [id]/
β”‚ β”‚ └── page.tsx
β”‚ β”œβ”€β”€ post/
β”‚ β”‚ └── page.tsx
β”‚ └── user/
β”‚ └── [id]/
β”‚ └── page.tsx
β”œβ”€β”€ components/
β”‚ β”œβ”€β”€ AuthForm.tsx
β”‚ β”œβ”€β”€ AuthProvider.tsx
β”‚ β”œβ”€β”€ CardSkeleton.tsx
β”‚ β”œβ”€β”€ CategoryFilterSection.tsx
β”‚ β”œβ”€β”€ DashboardView.tsx
β”‚ β”œβ”€β”€ Footer.tsx
β”‚ β”œβ”€β”€ Hero.tsx
β”‚ β”œβ”€β”€ LocationProvider.tsx
β”‚ β”œβ”€β”€ MapView.tsx
β”‚ β”œβ”€β”€ Navbar.tsx
β”‚ β”œβ”€β”€ NoticeDetails.tsx
β”‚ β”œβ”€β”€ NoticesView.tsx
β”‚ β”œβ”€β”€ PostNoticeForm.tsx
β”‚ β”œβ”€β”€ SessionWatcher.tsx
β”‚ β”œβ”€β”€ ToggleTheme.tsx
β”‚ β”œβ”€β”€ UserProfile.tsx
β”‚ └── ui/
β”‚ β”œβ”€β”€ avatar.tsx
β”‚ β”œβ”€β”€ badge.tsx
β”‚ β”œβ”€β”€ button.tsx
β”‚ β”œβ”€β”€ card.tsx
β”‚ β”œβ”€β”€ dropdown-menu.tsx
β”‚ β”œβ”€β”€ input.tsx
β”‚ β”œβ”€β”€ label.tsx
β”‚ β”œβ”€β”€ popover.tsx
β”‚ β”œβ”€β”€ scroll-area.tsx
β”‚ β”œβ”€β”€ select.tsx
β”‚ β”œβ”€β”€ separator.tsx
β”‚ β”œβ”€β”€ sheet.tsx
β”‚ β”œβ”€β”€ skeleton.tsx
β”‚ β”œβ”€β”€ sonner.tsx
β”‚ β”œβ”€β”€ switch.tsx
β”‚ β”œβ”€β”€ tabs.tsx
β”‚ └── textarea.tsx
β”œβ”€β”€ hooks/
β”‚ └── use-auth.ts
β”œβ”€β”€ lib/
β”‚ β”œβ”€β”€ cloudinary.ts
β”‚ β”œβ”€β”€ prisma.ts
β”‚ β”œβ”€β”€ utils.ts
β”‚ β”œβ”€β”€ validations.ts
β”‚ └── firebase/
β”‚ β”œβ”€β”€ firebase-admin.ts
β”‚ β”œβ”€β”€ firebase-auth.ts
β”‚ β”œβ”€β”€ firebase.ts
β”‚ └── upload-image.ts
β”œβ”€β”€ prisma/
β”‚ β”œβ”€β”€ schema.prisma
β”‚ └── migrations/
β”‚ β”œβ”€β”€ migration_lock.toml
β”‚ β”œβ”€β”€ 20250726095710_init/
β”‚ β”‚ └── migration.sql
β”‚ β”œβ”€β”€ 20250729115813_notices/
β”‚ β”‚ └── migration.sql
β”‚ β”œβ”€β”€ 20250812095037_user_profile/
β”‚ β”‚ └── migration.sql
β”‚ └── 20250812101829_user_profile/
β”‚ └── migration.sql
β”œβ”€β”€ types/
β”‚ └── types.ts
└── utils/
β”œβ”€β”€ distance.ts
β”œβ”€β”€ refreshSessionCookie.ts
└── setSessionCookie.ts
```

### Environment Variables

| Variable | Description |
| :-------------------------------------------- | :------------------------------------------------------ |
| ----------------`DATABASE`------------------- | ------------------`DATABASE`-------------------------- |
| DATABASE_URL | Database URL from neon again make a free account |
| ----------------`FIREBASE`------------------- | ------------------`FIREBASE`-------------------------- |
| NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN | Create Firebase Project To Get this key |
| NEXT_PUBLIC_FIREBASE_PROJECT_ID | Create Firebase Project To Get this key |
| NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET | Create Firebase Project To Get this key |
| NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID | Create Firebase Project To Get this key |
| NEXT_PUBLIC_FIREBASE_APP_ID | Create Firebase Project To Get this key |
| NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID | Create Firebase Project To Get this key |
| ----------------`LOCATION`------------------- | ------------------`LOCATION`--------------------------- |
| NEXT_PUBLIC_NOMINATIM_URL | Contact me to get this URL |
| -------------`FIREBASE-ADMIN`---------------- | ------------------`FIREBASE-ADMIN`--------------------- |
| FIREBASE_PROJECT_ID | Download Create Admin Private Keys json file |
| FIREBASE_CLIENT_EMAIL | Download Create Admin Private Keys json file |
| FIREBASE_PRIVATE_KEY | Download Create Admin Private Keys json file |

# πŸ’»Installation

## πŸ”₯ Next-JS

To run this project locally, follow these steps:

1. Clone the repository:
`git clone https://github.com/Karan-develops/Local-Link`
2. Navigate to the project directory:
`cd next`
3. Install the dependencies:
`npm install`
4. Set up environment variables: - Create a `.env` file in the `next` directory, - Add the Variables given in above `next` Table.
5. Start the development server:
`npm run dev`

## Usage

- Open your browser and navigate to `http://localhost:3000` for next.
- Register a new account or log in with existing credentials.
- Explore the features and functionalities of the Local Link Project.

## Contributing

Contributions are welcome! Please follow these steps to contribute:
- Clone or fork this repo
> `Run` [ git clone ` https://github.com/Karan-develops/Local-Link `]

1. Fork the repository.
2. Create a new branch:
`git checkout -b feature/your-feature-name`
3. Make your changes and commit them:
`git commit -m "Add your message"`
4. Push to the branch:
`git push origin feature/your-feature-name`
5. Open a pull request.

## πŸ”’ License

This repository is open source and under [MIT](https://choosealicense.com/licenses/mit/) License.

--- **_Lets Build & Grow, Have a Good Day_** **😊** ---