Skip to content

Latest commit

 

History

History
176 lines (128 loc) · 5.77 KB

File metadata and controls

176 lines (128 loc) · 5.77 KB

Database Project Jupiter

Database Project Jupiter is a full-stack application primarily developed using the MySQL, Express, Node.js, and React (MERN) tech stack. This project emphasizes database management, featuring a highly normalized database with extensive use of MySQL functions, procedures, triggers, and events. It was a collaborative effort that showcases excellent teamwork.

Table of Contents


About the Project

This project was created to demonstrate advanced database management techniques and full-stack application development. It integrates a highly normalized database with robust security mechanisms, including JSON Web Token (JWT) authentication, and ensures data integrity through MySQL triggers and events.

Features

  • Full-Stack Architecture: Built with React for the front-end and Node.js with Express for the back-end.
  • JWT Authentication: Secure authentication using tokens passed via headers.
  • Protected Routes: Security implemented on both front-end and back-end to restrict unauthorized access.
  • Database Management: Extensive use of MySQL functions, stored procedures, triggers, and events for efficient data handling.
  • Responsive Design: A modern and responsive user interface styled with Tailwind CSS.
  • Team Collaboration: Developed with contributions from multiple collaborators.

Technologies Used

The project utilizes the following technologies:

Front-End

  • React: JavaScript library for building user interfaces.
  • Tailwind CSS: Utility-first CSS framework for styling.

Back-End

  • Node.js: JavaScript runtime for server-side development.
  • Express: Web application framework for Node.js.

Database

  • MySQL: Relational database management system.

Security

  • JWT (JSON Web Tokens): For secure token-based authentication.

Setup Instructions

Follow these steps to set up the project locally:

  1. Clone the repository:

    git clone https://github.com/IllangasingheIMDP/Database_Project_Jupiter.git
    cd Database_Project_Jupiter
  2. Back-End Setup:

    • Navigate to the backend directory:
      cd server
    • Install dependencies:
      npm install
    • Configure your environment variables (e.g., database connection, JWT secret) in a .env file.
    • Start the server:
      npm start
  3. Front-End Setup:

    • Navigate to the frontend directory:
      cd client
    • Install dependencies:
      npm install
    • Start the development server:
      npm start
  4. Access the application in your browser at:

    http://localhost:3000
    

Usage

  • Use the login feature to authenticate and access protected routes.
  • Interact with the database through the user-friendly interface.
  • Admin features allow managing and updating database records efficiently.

Security

  • JWT Authentication: Tokens are passed in headers for secure communication.
  • Protected Routes: Both front-end and back-end routes are secured to prevent unauthorized access.

Database Design

  • The database is fully normalized to achieve optimal performance and data integrity.
  • MySQL functions, stored procedures, triggers, and events are extensively used.
  • The focus on database design makes this project an excellent example of advanced database management.

User Interface samples

  • Employee image

image

image

  • Manager image

image

-HR Manager image image image image pdf output image

  • Admin image

image

image image

image

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository.
  2. Create a new feature branch:
    git checkout -b feature/YourFeatureName
  3. Commit your changes:
    git commit -m "Add your message here"
  4. Push to your fork:
    git push origin feature/YourFeatureName
  5. Submit a pull request.

Contact

If you have any questions or would like to collaborate, feel free to reach out:


Thank you for exploring Database Project Jupiter! We hope you find it insightful and inspiring. 🚀