Skip to content

Event management API | backend | Node & Express | TypeScript | Prisma ORM | PostgreSQL | Frontend - Angular 18, Tailwind CSS |

Notifications You must be signed in to change notification settings

victorpreston/plana

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Node.js: JavaScript runtime for building scalable network applications.
  • Express.js Express.js: Minimalist web framework for Node.js.
  • TypeScript TypeScript: Typed superset of JavaScript that compiles to plain JavaScript.
  • Prisma Prisma ORM: Next-generation ORM for Node.js and TypeScript.
  • PostgreSQL PostgreSQL: Open-source object-relational database system.

Frontend

  • Angular Angular 18: Platform for building dynamic web applications.
  • Tailwind CSS 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:

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 Node.js: Ensure Node.js is installed on your machine.
  • PostgreSQL PostgreSQL: Set up a PostgreSQL database.

Installation

  1. Clone the Repository:

    git clone https://github.com/victorpreston/plana.git
  2. Navigate to the Project Directory:

    cd plana
  3. Install Backend Dependencies:

    cd backend
    npm install
  4. Set Up Environment Variables: Create a .env file in the backend directory with the following:

    DATABASE_URL=your_postgresql_database_url
    CLOUDINARY_URL=your_cloudinary_url
  5. Run Database Migrations:

    npx prisma migrate dev
  6. Start the Backend Server:

    npm run dev
  7. Install Frontend Dependencies:

    cd ../frontend
    npm install
  8. Start the Frontend Server:

    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 file for details.