Skip to content

Commit

Permalink
Merge pull request #32 from jogeshgupta963/main
Browse files Browse the repository at this point in the history
Auth Pages and minor changes
  • Loading branch information
JhndaCoder authored Oct 19, 2022
2 parents ab6ca58 + 3b4c67e commit a592ba9
Show file tree
Hide file tree
Showing 11 changed files with 353 additions and 82 deletions.
2 changes: 1 addition & 1 deletion acm-member-dashboard/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "dashboard",
"version": "0.1.0",
"proxy": "http://ec2-13-235-76-33.ap-south-1.compute.amazonaws.com:5000/",
"proxy": "http://127.0.0.1:5000/",
"private": true,
"dependencies": {
"@emotion/react": "^11.9.0",
Expand Down
8 changes: 8 additions & 0 deletions acm-member-dashboard/src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ import Calendar from "./pages/calendar/Calendar";
import Announcements from "./pages/announcements/Announcements";

import Certificates from "./pages/certificates/Certificates";
import Register from "./pages/register/Register";
import Password from "./pages/ResetLink/Password";
import ForgotPass from "./pages/ForgotPassword/ForgotPass";
import Settings from "./pages/Settings/Settings";

function Nav() {
return (
Expand All @@ -33,13 +37,17 @@ function App() {
<>
<Routes>
<Route exact path="/login" element={<Logins />} />
<Route exact path="/register" element={<Register />} />
<Route exact path="/forgotPassword" element={<Password />} />
<Route exact path="/user/resetPassword/:id" element={<ForgotPass />} />
<Route element={<Nav />}>
<Route path="/" element={<MainDash />} exact />
<Route path="/calendar" element={<Calendar />} />
<Route path="/certificates" element={<Certificates />} />
<Route path="/badges" element={<Badges />} />
<Route path="/announcements" element={<Announcements />} />
<Route path="/projects" element={<Projects />} />
<Route path="/settings" element={<Settings />} />
</Route>
</Routes>
</>
Expand Down
48 changes: 25 additions & 23 deletions acm-member-dashboard/src/components/Cards/Cards.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,41 @@ import { cardsData } from "../../Data/Data";

// Sidebar imports
// import {

// UilUsdSquare
// } from "@iconscout/react-unicons";

import { AiFillGithub } from 'react-icons/ai';
import { AiFillGithub } from "react-icons/ai";
import Card from "../Card/Card";
import { useSelector } from "react-redux";

const Cards = () => {
const {user} = useSelector(state=>state.user)
const { user } = useSelector((state) => state.user);
return (
<div className="Cards">
{user.bootcamps && user.bootcamps.map((card, id) => {
return (
<div className="parentContainer" key={id}>
<Card

// title={card.title}
// color={card.color}
// barValue={card.barValue}
// value={card.value}
// png={card.png}
// time={card.time}
// series={card.series}
{user.bootcamps &&
user.bootcamps.map((card, id) => {
return (
<div className="parentContainer" key={id}>
<a href={card.url} target="__blank">
<Card
// title={card.title}
// color={card.color}
// barValue={card.barValue}
// value={card.value}
// png={card.png}
// time={card.time}
// series={card.series}

color={{ backGround: "#1e1f25" }}
barValue={70}
value={card}
png={AiFillGithub}
/>
</div>
);
})}
color={{ backGround: "#1e1f25" }}
barValue={70}
value={card.enrolled}
png={AiFillGithub}
/>
</a>
</div>
);
})}
</div>
);
};
Expand Down
20 changes: 9 additions & 11 deletions acm-member-dashboard/src/components/Contribution/Contribution.jsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import React from 'react'
import React from "react";
import Tilt from "react-parallax-tilt";
import './Contribution.css'
import "./Contribution.css";

const Contribution = () => {
return (
<a href="https://github.com/ACM-Thapar/CS_COURSE_GUIDE">
<Tilt>
<div className="cscourseguide">
CS_COURSE_GUIDE
</div>
</Tilt>
<a href="https://github.com/ACM-Thapar/CS_COURSE_GUIDE" target="__blank">
<Tilt>
<div className="cscourseguide">CS_COURSE_GUIDE</div>
</Tilt>
</a>
)
}
);
};

export default Contribution
export default Contribution;
87 changes: 54 additions & 33 deletions acm-member-dashboard/src/components/Sidebar.jsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
import React, { useState } from "react";
import "./Sidebar.css";
import Logo from "../imgs/acmlogo.png";
import { UilSignOutAlt, UilUser } from "@iconscout/react-unicons";
import { UilSignOutAlt, UilUser } from "@iconscout/react-unicons";
import { SidebarData } from "../Data/Data";
import { UilBars } from "@iconscout/react-unicons";
import { motion } from "framer-motion";
import Cookies from "js-cookie";
import { useSelector } from "react-redux";
import { Link } from "react-router-dom";
import axios from "axios";

const Sidebar = () => {
const [expanded, setExpaned] = useState(true);
const [selected, setSelected] = useState(0);

const sidebarVariants = {
true: {
left: "0",
Expand All @@ -22,6 +24,17 @@ const Sidebar = () => {
};

const { user } = useSelector((state) => state.user);

const signoutHandle = async (e) => {
e.preventDefault();
try {
await axios.post("/auth/logout");
window.location.reload();
} catch (err) {
console.log(err);
}
};

return (
<>
<div className="pilllogo">
Expand All @@ -41,38 +54,46 @@ const Sidebar = () => {
>
{/* logo */}

<motion.div className="menu">
{SidebarData && SidebarData.map((item, index) => {
return (
<div
className={selected === index ? "menuItem active" : "menuItem"}
key={index}
onClick={() => setSelected(index)}
>
<item.icon className="icon" />
<span ><Link to={item.link} style={{fontSize: '14px'}}>{item.heading}</Link></span>

</div>
);
})}
<div className="admin menuItem">
<UilUser />
<span>Admin</span>
</div>
{/* signoutIcon */}
<div style={{border: '0.1px solid #3D70B2',}}></div>
{user.bootcamps.map((item, index)=>{
return(
<div className="menuItem" key={index}>
<UilSignOutAlt className="icon" />
<span>{item}</span>
</div>
)
})}
<div className="menuItem">
<UilSignOutAlt className="icon"/>
</div>
</motion.div>
<motion.div className="menu">
{SidebarData &&
SidebarData.map((item, index) => {
return (
<div
className={
selected === index ? "menuItem active" : "menuItem"
}
key={index}
onClick={() => setSelected(index)}
>
<item.icon className="icon" />
<span>
<Link to={item.link} style={{ fontSize: "14px" }}>
{item.heading}
</Link>
</span>
</div>
);
})}
<div className="admin menuItem">
<UilUser />
<span>Admin</span>
</div>
{/* signoutIcon */}
<div style={{ border: "0.1px solid #3D70B2" }}></div>
{user.bootcamps.map((item, index) => {
return (
<div className="menuItem" key={index}>
<UilSignOutAlt className="icon" />
<a target="__blank" href={item.url}>
{item.enrolled}
</a>
</div>
);
})}
<div className="menuItem">
<UilSignOutAlt onClick={signoutHandle} className="icon" />
</div>
</motion.div>
</motion.div>
</>
);
Expand Down
87 changes: 87 additions & 0 deletions acm-member-dashboard/src/pages/ForgotPassword/ForgotPass.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import "../login/Login.css";
import acmlogo from "../../imgs/acmlogo.png";
import axios from "axios";
import { useRef } from "react";

import {
Link,
Navigate,
useLocation,
useNavigate,
useParams,
} from "react-router-dom";
import Cookies from "js-cookie";
import { useEffect } from "react";
import { useState } from "react";

function ForgotPass() {
const pass = useRef("");
const conPass = useRef("");
const navigate = useNavigate();
const [sent, setSent] = useState(0);
const { id } = useParams();
const resetPassword = async () => {
try {
if (pass.current.value !== conPass.current.value) {
console.log("Passwords dont match");
}
const { data } = await axios.post(`/auth/resetPassword/${id}`, {
password: pass.current.value,
});
if (data) {
navigate("/login");
}
} catch (error) {
setSent(0);
}
};

return (
<>
{Cookies.get("ACM_THAPAR") && <Navigate to="/" />}
<div className="main">
<div className="sub-main">
<div>
<div className="imgs">
<div className="container-image">
<img src={acmlogo} alt="profile" className="profile" />
</div>
</div>
<div>
<h1>Reset Password</h1>

<div className="inputs">
<input
ref={pass}
type="password"
placeholder="Password"
className="name"
/>
</div>
<div className="inputs">
<input
ref={conPass}
type="password"
placeholder="confirm password"
className="name"
/>
</div>
<div onClick={resetPassword} className="login-button">
<button>Reset Password</button>
</div>
{sent ? (
<>
<div>
<p>An email has been sent to you to change your password</p>
</div>
</>
) : null}
</div>
</div>
</div>
</div>
</>
);
}

export default ForgotPass;
Loading

0 comments on commit a592ba9

Please sign in to comment.