https://github.com/victorpreston/plana
Event management API | backend | Node & Express | TypeScript | Prisma ORM | PostgreSQL | Frontend - Angular 18, Tailwind CSS |
https://github.com/victorpreston/plana
angular angular-18 angular18 api backend cloudinary event-api event-app event-management-system frontend fullstack node plana postgres postgresql postgresql-database prisma tailwindcss webapp
Last synced: 6 months ago
JSON representation
Event management API | backend | Node & Express | TypeScript | Prisma ORM | PostgreSQL | Frontend - Angular 18, Tailwind CSS |
- Host: GitHub
- URL: https://github.com/victorpreston/plana
- Owner: victorpreston
- Created: 2024-07-08T19:13:35.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-11-12T14:05:26.000Z (6 months ago)
- Last Synced: 2024-11-12T15:17:51.167Z (6 months ago)
- Topics: angular, angular-18, angular18, api, backend, cloudinary, event-api, event-app, event-management-system, frontend, fullstack, node, plana, postgres, postgresql, postgresql-database, prisma, tailwindcss, webapp
- Language: TypeScript
- Homepage:
- Size: 2.84 MB
- Stars: 2
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Plana- Comprehensive Event Management System
Plana is a full-stack event management application designed to streamline the organization and coordination of events. It offers a robust backend API and a dynamic frontend interface, providing users with an efficient platform to manage events seamlessly.
## Features
- **Event Creation and Management**: Easily create, update, and delete events with detailed information.
- **User Authentication**: Secure user registration and login functionalities.
- **Responsive Design**: Optimized for various devices, ensuring a consistent user experience.
- **Image Uploads**: Integrates with Cloudinary for efficient image storage and retrieval.## Technologies Used
### Backend
-  **Node.js**: JavaScript runtime for building scalable network applications.
-  **Express.js**: Minimalist web framework for Node.js.
-  **TypeScript**: Typed superset of JavaScript that compiles to plain JavaScript.
-  **Prisma ORM**: Next-generation ORM for Node.js and TypeScript.
-  **PostgreSQL**: Open-source object-relational database system.### Frontend
-  **Angular 18**: Platform for building dynamic web applications.
-  **Tailwind CSS**: Utility-first CSS framework for rapid UI development.## Folder Structure
Here's an overview of the folder structure to help you understand the project organization:
```plaintext
plana/
├── backend/
│ ├── prisma/
│ ├── src/
│ │ ├── controllers/
│ │ ├── middlewares/
│ │ ├── models/
│ │ ├── routes/
│ │ ├── services/
│ │ ├── utils/
│ │ └── index.ts
│ └── package.json
│
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── main.ts
│ └── package.json
│
└── README.md
```## Getting Started
### Prerequisites
-  **Node.js**: Ensure Node.js is installed on your machine.
-  **PostgreSQL**: Set up a PostgreSQL database.### Installation
1. **Clone the Repository**:
```bash
git clone https://github.com/victorpreston/plana.git
```2. **Navigate to the Project Directory**:
```bash
cd plana
```3. **Install Backend Dependencies**:
```bash
cd backend
npm install
```4. **Set Up Environment Variables**:
Create a `.env` file in the `backend` directory with the following:
```env
DATABASE_URL=your_postgresql_database_url
CLOUDINARY_URL=your_cloudinary_url
```5. **Run Database Migrations**:
```bash
npx prisma migrate dev
```6. **Start the Backend Server**:
```bash
npm run dev
```7. **Install Frontend Dependencies**:
```bash
cd ../frontend
npm install
```8. **Start the Frontend Server**:
```bash
npm start
```## Usage
Once both servers are running, you can access the application at `http://localhost:4200`. Register or log in to manage and explore events.
## Contributing
Contributions are welcome! Fork the repository and submit a pull request with your changes.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.