SciAstra is a web application designed to help students prepare for admissions to prestigious research institutions like IISc, IISER, NISER, and ISI. The platform offers a range of courses and blog posts that provide guidance and resources to aspiring researchers.
- Features
- Tech Stack
- Installation
- Environment Variables
- Database Setup
- Usage
- Folder Structure
- License
- Course Management: Users can browse through courses, view discounted prices, and enroll.
- Two-Step Payment Verification: A secure two-step verification process ensures reliable course payments.
- Blog Management: Admins can add, edit, schedule, and delete blog posts. Users can read and explore blog articles.
- User Authentication & Role-Based Access: Separate login for admins and users, with restricted access based on roles.
- Responsive Design: Optimized UI for seamless usage on mobile, tablet, and desktop devices.
- Frontend: HTML, CSS (Bootstrap, Tailwind CSS), JavaScript, EJS
- Backend: Node.js, Express
- Database: MySQL
- Authentication: bcrypt for password hashing
- Payments: Mock Razorpay integration for demonstration (customizable for actual gateways)
- Clone the Repository:
git clone https://github.com/yourusername/sciastra.git cd sciastra
- Install Dependencies:
npm install
- Configure Environment Variables:
Create a .env file in the root directory and add the following:
PORT=3000 DB_HOST=your_database_host DB_USER=your_database_username DB_PASSWORD=your_database_password DB_NAME=your_database_name SECRET_KEY=your_secret_key
- Run the Application:
npm start
To run this project, you’ll need to add the following environment variables in your .env
file:
PORT
: The port number the app will run on (e.g., 3000).DB_HOST
: Database host (usuallylocalhost
for local setup).DB_USER
: Your MySQL username.DB_PASSWORD
: Your MySQL password.DB_NAME
: The name of your MySQL database.SECRET_KEY
: A secret key for session management.
-
Create Database: Create a new database in MySQL for the project.
-
Run the SQL Script:
Use theschema.sql
file provided to set up the database tables and sample data:mysql -u [username] -p [database_name] < schema.sql
-
Connect Database: Update the
.env
file with your database credentials as mentioned in the Environment Variables section.
- Admins can manage blog posts, create new courses, view transaction history, and monitor user enrollments.
- Access the dashboard by logging in as an admin through the
/admin-login
route.
- Users browse available courses on the platform.
- After selecting a course, users proceed to a mock two-step payment verification.
- A mock payment gateway is shown, allowing users to confirm their transaction and enroll in a course.
- Users can read blog posts related to admission guidance, preparation tips, and research institute information.
- Admins can create, edit, and schedule posts for publication.
sciastra/
├── public/ # Static files (CSS, images)
├── views/ # EJS templates for frontend rendering
├── routes/ # Express route handlers
├── models/ # Database models (if applicable)
├── controllers/ # Controller files for business logic
├── .env # Environment configuration
├── app.js # Main server file
├── queries.sql # Database setup script
└── README.md # Project documentation
This project is licensed under the MIT License.