A web application for managing people, projects, and conferences for the Big Data Analytics Lab, built with Node.js and MySQL, and containerized with Docker.
- User Authentication: Role-based login for Admins, Faculty, PhD, MTech, and BTech users.
- Admin Dashboard: View site-wide statistics and manage content.
- Content Management: Add and view projects, conferences, and co-authors.
- User Profiles: Dedicated profile pages for logged-in users to view their associated work.
- Database GUI: Includes phpMyAdmin for easy, web-based database management.
- Backend: Node.js, Express.js
- Frontend: EJS (Embedded JavaScript templates), HTML, CSS
- Database: MySQL
- Authentication:
express-session,bcryptjsfor password hashing - Containerization: Docker, Docker Compose
Follow these instructions to get a copy of the project up and running on your local machine.
Make sure you have the following software installed:
-
Clone the repository:
git clone [https://github.com/your-username/BDA_LAB.git](https://github.com/your-username/BDA_LAB.git)
-
Navigate to the project directory:
cd BDA_LAB -
Prepare the Database Script: Place your SQL database schema file in the root of the project and name it
init.sql. This script will be automatically executed by Docker to set up the database the first time you start the application. -
Configure Environment Variables: Open the
docker-compose.ymlfile and review theenvironmentsection for both theappanddbservices. Adjust passwords and secrets as needed.
-
Build and Start the Application: Run the following command from the root of the project. This will build the Docker images and start all services (the Node.js app, MySQL database, and phpMyAdmin).
docker-compose up --build
To run the containers in the background, add the
-dflag:docker-compose up -d --build. -
Accessing the Application:
- Web Application: http://localhost:3000
- phpMyAdmin (Database GUI): http://localhost:8080
- Database Connection (for external tools):
- Host:
127.0.0.1 - Port:
3307(or the host port you specified indocker-compose.yml) - User:
root - Password: The password set in
docker-compose.yml
- Host:
-
Stopping the Application: To stop all running containers, press
Ctrl + Cin the terminal where they are running, or run:docker-compose down
Configuration is managed in the docker-compose.yml file.
SESSION_SECRET– A secret key used to sign session ID cookies.DB_HOST– The hostname of the database service (should bedb).DB_USER– The username for the database connection.DB_PASSWORD– The password for the database connection.DB_DATABASE– The name of the database to use.
MYSQL_ROOT_PASSWORD– The root password for the MySQL server.MYSQL_DATABASE– The name of the database to create automatically on startup.
🔒 Keep your secrets in
docker-compose.ymlsecure and consider using Docker Secrets for production environments.
Contributions are welcome! Follow these steps:
- Fork the repo.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -m "Add feature"). - Push to your branch (
git push origin feature-branch). - Open a Pull Request.
This project is licensed under the MIT License.


